Ошибка при перемещении загруженного файла в Slim framework

Я пытаюсь загрузить файлы, используя тонкий фреймворк, но все равно получаю эту досадную ошибку: «Ошибка при перемещении загруженного файла dumped.jpg в / var / www / html / user-name / src / uploads»

Вот мой код:

$app->post('/issues/create', function( Request $request, Response $response, array $args ) {
    $files = $request->getUploadedFiles();
    $file  = $files['photo'];

    $destinationPath = __DIR__.'/uploads';

    if( $file->getError() === UPLOAD_ERR_OK ) {
         $file->moveTo($destinationPath);
    }
});

Пожалуйста, что я делаю не так?


person shekwo    schedule 15.05.2018    source источник


Ответы (2)


Сам код выглядит правильным, но сообщение об ошибке не является оптимальным, поскольку в нем не указывается, что пошло не так при попытке переместить файл. Я бы предположил, что это проблема владения / разрешений, которые являются наиболее частой причиной таких ошибок.

Можете ли вы проверить, разрешено ли пользователю, запускающему ваше приложение (вероятно, www-data), создавать новые файлы внутри /var/www/html/safeMonkeyApi/src/uploads?

Независимо от ошибки, вам, вероятно, следует проверить, установлен ли $files['photo'], прежде чем использовать его. Никогда не доверяйте вводу пользователя. ;-)

person david    schedule 15.05.2018

Укажите имя нового файла следующим образом:

$uploadPath = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';
$uploadedFiles = $request->getUploadedFiles();
$file = $uploadedFiles['file'];
$file->moveTo($uploadPath . $file->getClientFilename());
person akyl kulmatov    schedule 18.06.2019