本地上载文件

时间:2017-05-11 21:39:41

标签: laravel laravel-5 laravel-5.4

我已将可公开访问的文件上传到我的本地磁盘。我可以在我的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-fileshttps://laravel.com/docs/5.4/filesystem#the-public-disk

干杯

3 个答案:

答案 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);
    }