Laravel 8 未找到存储移动文件
Laravel 8 Storage move file not found
我正在尝试将文件从临时路径移动到正确路径。但是,无论我尝试什么,它总是发回此文件未找到错误:
League\Flysystem\FileNotFoundException
File not found at path: var/www/html/storage/app/public/covers/tmp/608c07a082451-1619789728/81-536x354.jpeg
我正在使用 sail 因此路径中有 'var/www/html/',即使容器中的此路径没有问题,因为可以从前端获取到达此路径 API这就是临时文件的保存方式。
控制器中的代码如下:
//...
$temp_file = TempFile::where('folder', $cover_folder)->first();
if ($temp_file) {
// retrieve file path and target path
$filepath = storage_path("app/public/covers/tmp/{$temp_file->folder}/{$temp_file->filename}");
$target_path = storage_path("app/public/covers/{$course->id}/");
Storage::move($filepath, $target_path);
$course->cover_img = "{$target_path}/{$temp_file->filename}";
$course->save();
// remove temp directory and temp file record
rmdir(storage_path("app/public/covers/tmp/{$temp_file->folder}/"));
$temp_file->delete();
}
此行突出显示的错误回溯:
Storage::move($filepath, $target_path);
也试过用Storage::disk('public')->move()
,或public_storage
,或Storage::path()
,或只用纯字符串,都不行。
符号链接由 运行 php artisan storage:link
从 public/storage
设置为 storage
。
我在 laracast、stack overflow 或 github 上搜索了尽可能多的内容,但无法找到解决方案。有人对这个问题有什么想法吗?
真的很感激。
不要使用 storage_path 函数,因为方法 Storage::move( 有前缀路径 [app_path]/storage/app/
Storage::move("public/covers/tmp/{$temp_file->folder}/{$temp_file->filename}", "public/covers/{$course->id}/");
我正在尝试将文件从临时路径移动到正确路径。但是,无论我尝试什么,它总是发回此文件未找到错误:
League\Flysystem\FileNotFoundException
File not found at path: var/www/html/storage/app/public/covers/tmp/608c07a082451-1619789728/81-536x354.jpeg
我正在使用 sail 因此路径中有 'var/www/html/',即使容器中的此路径没有问题,因为可以从前端获取到达此路径 API这就是临时文件的保存方式。
控制器中的代码如下:
//...
$temp_file = TempFile::where('folder', $cover_folder)->first();
if ($temp_file) {
// retrieve file path and target path
$filepath = storage_path("app/public/covers/tmp/{$temp_file->folder}/{$temp_file->filename}");
$target_path = storage_path("app/public/covers/{$course->id}/");
Storage::move($filepath, $target_path);
$course->cover_img = "{$target_path}/{$temp_file->filename}";
$course->save();
// remove temp directory and temp file record
rmdir(storage_path("app/public/covers/tmp/{$temp_file->folder}/"));
$temp_file->delete();
}
此行突出显示的错误回溯:
Storage::move($filepath, $target_path);
也试过用Storage::disk('public')->move()
,或public_storage
,或Storage::path()
,或只用纯字符串,都不行。
符号链接由 运行 php artisan storage:link
从 public/storage
设置为 storage
。
我在 laracast、stack overflow 或 github 上搜索了尽可能多的内容,但无法找到解决方案。有人对这个问题有什么想法吗?
真的很感激。
不要使用 storage_path 函数,因为方法 Storage::move( 有前缀路径 [app_path]/storage/app/
Storage::move("public/covers/tmp/{$temp_file->folder}/{$temp_file->filename}", "public/covers/{$course->id}/");