Приветствую любого, кто это читает!
В настоящее время у меня есть страница php, которая позволяет пользователю загружать файл на мой сервер в указанном каталоге. Вот что я использую для этого:
if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1) {
chmod($uploadpath, 0777);
$uploadpath = $uploadpath . basename( $_FILES['fileup']['name']); // gets the file name
$sepext = explode('.', strtolower($_FILES['fileup']['name']));
$type = end($sepext); // gets extension
list($width, $height) = getimagesize($_FILES['fileup']['tmp_name']); // gets image width and height
$err = ''; // to store the errors
// If no errors, upload the image, else, output the errors
if($err == '') {
if(move_uploaded_file($_FILES['fileup']['tmp_name'], $uploadpath)) {
chmod($uploadpath, 0777);
echo '<br/><br/>File successfully uploaded:' .$uploadpath.'</b>';
}
else echo '<b>Unable to upload the file.</b>';
}
else echo $err;
}
Загружающая часть работает как прелесть, и файл загружается на сервер, но после загрузки я не могу удалить этот файл в качестве другого пользователя. В настоящее время пользователем, загружающим файл, будет пользователь Apache "www-data".
Я действительно считаю, что проблема связана с разрешениями для загруженного файла, который я пытался использовать:
chmod($uploadpath,0777);
Это не помогает, хотя.. Файл по-прежнему не может быть удален. Я могу удалить его через SSH, если я root, используя "rm -rf/directorypath", но не могу удалить его, если я перейду к нему.
Какие-либо предложения? Любая помощь очень ценится!
вы можете использовать unlink ('upload_folder/'.$ image [' file_name ']);
Попробуйте разрешить разрешение вашей папке с изображениями также не только под ними.
chmod($upload_path, 0777);
перед линией
$uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);
Обратите внимание, что 777 в любом случае не является супербезопасным. Лучшей практикой является управление пользователями с помощью групповых www-данных