我正在尝试使用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);
}
});
请问我做错了什么?
答案 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());