Когда пользователь создает профиль и загружает изображение профиля, функция PHP «move_uploaded_file» используется для перемещения временной копии этого изображения в каталог проекта.
Хотя мой текущий код работает отлично намой компьютер с Windows 10, он не работает на моем Mac из-за неправильных прав доступа к файлу.
Я уже попробовал метод, указанный в других ответах, и ничего не изменилось после выполнения команды терминала:
sudo chmod 644 /opt/lampp/htdocs/yourfolder
Это верно для любого варианта, включая:
sudo chmod -R 777 /opt/lampp/htdocs/yourfolder
Обратите внимание, что у меня действительно есть права администратора на ноутбуке
Другие пользователи заявили, что эти команды имеютисправил свои проблемы, поэтому я подозреваю, что у меня все по-другому.
Фрагмент PHP-кода:
$username = $_POST["username"];
$password = $_POST["password"];
$ext = null;
/* Debugging information
echo $_FILES["profile_pic"]["name"]."<br>";
echo $_FILES["profile_pic"]["tmp_name"]."<br>";
echo $_FILES["profile_pic"]["size"]."<br>";
echo $_FILES["profile_pic"]["error"]."<br>";
*/
if (strrpos($_FILES["profile_pic"]["name"], ".jpg") != null || strrpos($_FILES["profile_pic"]["name"], ".jpeg") != null) {
$ext = ".jpg";
};
if (strrpos($_FILES["profile_pic"]["name"], ".png") != null) {
$ext = ".png";
};
$path = __DIR__ . "\data\users\images\\" . uniqid() . $ext;
if (move_uploaded_file($_FILES["profile_pic"]["tmp_name"], $path)) {
echo("File successfully uploaded");
} else {
echo("Upload failed");
};
Возвращено: Загрузка не удалась
Сгенерирована ошибка:
move_uploaded_file (/opt/lampp/htdocs/Test-Site\data\users\images\5c1dadd52bb71.jpg): не удалось открыть поток:В доступе отказано в разрешенииt / lampp / htdocs / Test-Site / signup_confirm.php в строке 27
Ожидается : изображение профиля пользователя вставляется в ... / htdocs / Test-Site / data / users / images папка
Факт: выше ошибка о неверных разрешениях файла выдается