PHP: Как мне добавить имена пользователей к именам загруженных файлов?
Я добился определенных успехов в создании своего веб-сайта, который включает загрузку видеофайлов для публичного просмотра.
Пока у меня нормально работала базовая функция загрузки, я кое-что понял. Существует вероятность того, что кто-то может загрузить видео с идентичным именем файла кому-то другому и, таким образом, непреднамеренно перезаписать его и заставить его оригинальную веб-страницу показать новое видео.
Вот код, который я написал до сих пор...
$fileowner = $_SESSION['user_id'];
$filename = $_FILES['videoUpload']['name'];
$filetype = $_FILES['videoUpload']['type'];
$filesize = $_FILES['videoUpload']['size'];
$cname = str_replace(" ","_",$filename);
$tmp_name = $_FILES['videoUpload']['tmp_name'];
$target_path = "../private/media/";
$target_file = $target_path . basename($cname);
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
move_uploaded_file($_FILES['videoUpload']['tmp_name'], $target_file);
В этом случае идентификационный номер учетной записи пользователя, с которой я тестирую свой веб-сайт, равен 1, а загружаемый файл называется TestVideo.mp4.
Поэтому я пытаюсь получить файл с именем 01-TestVideo.mp4 (01 - это идентификатор моей учетной записи).
Пока что мои усилия не принесли желаемых результатов. Вместо того, чтобы выступать в качестве стандартного TestVideo.mp4, файл был загружен как "1" (без кавычек), буквально без расширения файла.
1 ответ
Добавьте userId, как показано ниже:
$fileowner = $_SESSION['user_id'];
$filename = $_FILES['videoUpload']['name'];
$filename = $fileowner.'-'.$filename;