在Slim框架中移动上传文件时出错

时间:2018-05-15 18:00:58

标签: php file-upload slim-3

我正在尝试使用slim框架上传文件,但我不断收到这个令人讨厌的错误 - “”将上传的文件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 :(得分:1)

代码本身看起来正确,但错误消息不是最佳的,因为它在尝试移动文件时未指定 出错的地方。我认为这是一个所有权/权限问题,这些是导致此类错误的最常见原因。

您是否可以检查运行您的应用程序的用户(可能是www-data)是否允许在/var/www/html/safeMonkeyApi/src/uploads内创建新文件?

与错误无关,您应该在使用之前检查$files['photo']是否已设置。绝不相信用户输入。 ; - )

答案 1 :(得分:0)

指定新文件的名称

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