我正在尝试使用Laravel 5的Storage :: disk() - > putFile()方法将图像上传到我的服务器。当我在本地使用php artisan服务时,图像会成功上传到本地磁盘。当我上传到服务器端时,它说该文件不存在。我已经尝试将最大帖子和上传大小设置为20MB,使用php artisan storage:link,并使用s3和public而不是本地磁盘,但似乎没有任何工作。
这是我的方法:
public function api_create(Request $request)
{
try {
$requestData = $request->all();
$uniqueFileID = Storage::disk('local')->putFile('product_media', new File($requestData["imageCode"]));
$requestData["imageCode"] = $uniqueFileID;
Image::create($requestData);
return "true";
} catch (Exception $exception) {
return "false";
}
}
这是我的错误:
local.ERROR: Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException: The file "/Users/drewgallagher/Downloads/download.png" does not exist in /home/52064-43928.cloudwaysapps.com/wrdddnmtvz/public_html/vendor/symfony/http-foundation/File/File.php:37
答案 0 :(得分:0)
你应该尝试这可能适合你:
public function api_create(Request $request)
{
try {
$requestData = $request->all();
$uploadedFile = public_path() . '/uploads/' . $requestData["imageCode"];
if(file_exists($uploadedFile)) {
$uniqueFileID = Storage::disk('local')->putFile('product_media', file_get_contents($uploadedFile));
$requestData["imageCode"] = $uniqueFileID;
Image::create($requestData);
return "true";
} else{
return "false";
}
} catch (Exception $exception) {
return "false";
}
}
答案 1 :(得分:0)
我的问题最终是当我使用PostMan进行测试时,当我运行我的前端请求时,我只发送文件路径,而不是具有正确标头的文件。这就是为什么后端没有获得正确的文件参数。