Спасибо за ваше время.
Итак, у меня есть веб-сервер стека LAMP, и я хочу изменить путь к загруженному файлу.
Например, пользователь загружает изображение через интерфейс, код PHP читает его, переименовывает файл в хешированную строку, чтобы файлы не перекрывались и не имели одинаковых имен в каталоге загрузки изображений, и указывал столбец изображения в строке пользователя на новый путь в таблице SQL.
Итак, у меня все работает, кроме переименования файла.
Имя файла успешно передано (т.е. ball.png)
$fileName = basename($_FILES["file"]["name"]); //This works, and let's pretend that it is "ball.png" in this example.
$baseDir = "uploads/profiles"; //This code works as it should.
$targetPath = $baseDir.$fileName; //This code works as it should.
$newFileName = $randomString.$fileExtension;
//The random string variable is generated in a previous function, and it works. Let's pretend that it is "e7635hasf1 in this example."
//The file extension variable is generated in a previous function, and it works. Let's pretend that it is ".png" in this example.
rename($targetPath, $newFileName);
//This is the code that does not work. I've tried changing permissions, doing it in the same directory to simplify things, but can't get rename() to work at all.
updateTables();
//This code works as it should. The SQL picture column for the row of the user that uploaded the picture now reads "uploads/profiles/e7635f1.png"
Я использую PHP 7, если это поможет. Этот код работает нормально, если я ничего не переименовываю (например, если я выполняю функцию updateTables () и передаю «uploads / profile / ball.png», а не «uploads / profile / e7653hasf1.png»). По сути, это указывает на то, что проблема в функции rename (), так что это указатель c, который не работает.
Еще раз спасибо за ваше время. Если у вас есть вопросы, пожалуйста, дайте мне знать.