Отказано в доступе в / opt / lampp / htdocs / при записи файла в переполнение стека

Когда пользователь создает профиль и загружает изображение профиля, функция 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): не удалось открыть поток: доступ запрещен в /opt/lampp/htdocs/Test-Site/signup_confirm.php в строке 27

ожидаемый: изображение профиля пользователя вставлено в …/ HTDOCS / Тест-сайты / данные / пользователи / изображения папка

Актуально: выше выдается ошибка о неверных правах доступа к файлу

-1

Решение

Причина ошибки в том, что я использовал неправильные разделители каталогов («\» вместо «/» для Mac). Изменение их заставило изображение профиля переместиться в предназначенное местоположение.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]