Невозможно удалить файл после загрузки. (Move_uploaded_file)

0

Приветствую любого, кто это читает!

В настоящее время у меня есть страница 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", но не могу удалить его, если я перейду к нему.

Какие-либо предложения? Любая помощь очень ценится!

Теги:
debian

3 ответа

3

если вы хотите удалить файл, вы можете использовать php unlink ! И если это каталог, то rmdir !

  • 0
    Ну, я не хочу удалять его с Apache .. У меня также есть хостинг Samba. Я хочу иметь возможность удалить этот файл от другого пользователя, кроме "www-data" apache.
0

вы можете использовать unlink ('upload_folder/'.$ image [' file_name ']);

  • 1
    По той же причине, что и ответ Пратика, это не поможет, но спасибо за ответ!
0

Попробуйте разрешить разрешение вашей папке с изображениями также не только под ними.

chmod($upload_path, 0777);

перед линией

$uploadpath = $uploadpath . basename( $_FILES['fileup']['name']); 

Обратите внимание, что 777 в любом случае не является супербезопасным. Лучшей практикой является управление пользователями с помощью групповых www-данных

  • 0
    Да, я понимаю, что это не самый безопасный метод. Я просто пытался найти что-то, что сработало. Я попробую это, хотя и дам вам знать. Спасибо
  • 0
    Нет, не повезло :( Это все еще не позволит мне удалить файл.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню