FileNotFoundException;文件不存在 Laravel 5 Storage Upload,仅在服务器端出



我正在尝试使用Laravel 5的Storage::d isk((->putFile((方法将图像上传到我的服务器。当我在本地使用 php artisan serve 时,图像成功上传到本地磁盘。当我上传到服务器端时,它说该文件不存在。我尝试将最大帖子和上传大小设置为 20MB,使用 php artisan storage:link,并使用 s3 和公共而不是本地磁盘,但似乎没有任何效果。

这是我的方法:

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: SymfonyComponentHttpFoundationFileExceptionFileNotFoundException: 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

我的问题是,当我使用 PostMan 进行测试和运行前端请求时,我只发送文件路径,而不是具有正确标头的文件。这就是为什么后端没有得到正确的文件参数。

你应该尝试这可能适合你:

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";
}
}

最新更新