我已将可公开访问的文件上传到我的本地磁盘。我可以在我的IDE中的storage / app / public / mysubdir / myfile.js中看到它 我已经运行artisan命令来创建公共目录的符号链接。我也可以在public / storage / mysubdir / myfile.js看到该文件 然而,当我转到http://my.app/storage/mysubdir/myfile.js时,我在RouteCollection.php第179行中收到错误“NotFoundHttpException”。
有什么想法吗?我需要添加一些特殊路线吗?或者更新Nginx?
我已关注https://laravel.com/docs/5.4/requests#storing-uploaded-files和https://laravel.com/docs/5.4/filesystem#the-public-disk
干杯
答案 0 :(得分:1)
我发现了问题。我最初在本地计算机上而不是在虚拟机中运行php artisan storage:link
。我删除了符号链接并在Vagrant / Homestead中重新运行php artisan storage:link
然后它开始工作。
答案 1 :(得分:0)
请务必公开存储文件,如下所示:
$request->file('file')->store('images', 'public');
并恢复它:
asset('storage/file.ext');
了解更多:
答案 2 :(得分:0)
请检查我的代码上传图像,以便存储在本地和服务器端的公共文件夹中
public function uploadImage(Request $request){
$file = Input::file('image');
if(empty($file)){
return Response()->json(['error' => "Image is required" ], 406);
}
$extension = $file->getClientOriginalExtension();
$filename = rand(11111111111,999999999999).'.'.$extension;
$tmp_path = public_path('users/thumbnail/');
$letmovefiles = $file->move($tmp_path, $filename);
$full = $tmp_path.$filename;
$destinationPath = public_path('users/');
if ($_FILES['image']) {
$image = Image::make($full);
$image->resize(600, 600)->save();
$new_path = $destinationPath;
rename($destinationPath,$new_path);
}
$getlnik = url('users/thumbnail').'/'.$filename;
return Response()->json(['url' => $getlnik ], 200);
}