Ошибка перемещения загруженного файла в Slim Framework - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь загрузить файлы, используя 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);
    }
});

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

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Укажите имя нового файла

$uploadPath = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';
$uploadedFiles = $request->getUploadedFiles();
$file = $uploadedFiles['file'];
$file->moveTo($uploadPath . $file->getClientFilename());
0 голосов
/ 15 мая 2018

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

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

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

...