Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔存储罐';无法访问_Php_Laravel - Fatal编程技术网

Php 拉威尔存储罐';无法访问

Php 拉威尔存储罐';无法访问,php,laravel,Php,Laravel,我写了一个系统来上传和显示一些图片,但是我对上传后访问它们的正确方式感到困惑 public function storeImage(Request $request) { $request->file('image')->store('public/images'); $filename = md5_file($request->file('image')) . '.' . $request->file('image')->extension(

我写了一个系统来上传和显示一些图片,但是我对上传后访问它们的正确方式感到困惑

public function storeImage(Request $request)
{

    $request->file('image')->store('public/images');

    $filename = md5_file($request->file('image')) . '.' .  $request->file('image')->extension();
    $img = new Image;
    $img->path = 'storage/images/'.$filename;
    $img->save();

    return back();
}
这很好,我有建议的符号链接
存储
,但是如果使用数据库中的
$filename
变量,我会得到一个404。在这里生成插入为内联图像src属性的正确路径是什么

图像标记如下所示:

文件夹绝对是符号链接的,我可以在finder中跟踪它。

您使用的是最新版本的laravel 5.3吗

如果是,您是否尝试过使用获取图像src URL

例如:

使用照明\支持\立面\存储


$url=Storage::url('file1.jpg')//获取URL

您使用的是最新版本的laravel 5.3吗

如果是,您是否尝试过使用获取图像src URL

例如:

使用照明\支持\立面\存储

$url=Storage::url('file1.jpg')//获取URL

修复了此问题

php artisan storage:link
不适用于homestead。与其删除文件夹,不如使用
homestead ssh
ln-s~/projects/my-website/storage/app/public/~/projects/my-website/public/storage在计算机上手动重新创建文件夹,修复了此问题


php artisan storage:link
不适用于homestead。要删除文件夹,请使用
homestadessh
ln-s~/projects/my-website/storage/app/public/~/projects/my-website/public/storage
在计算机上手动重新创建文件夹,确保文件存储在此目录中

保存文件后,请确保通过传递文件名作为参数来获取文件的url。。下面是我如何实现的

html表单

<form action="" method="post" id="jobImage">
   <div class="form-group">
     <input type="file" class="form-control" id="image" name="image">
   </div>
   <input type="button" value="Upload Image" onclick="uploadImage()" class="btn btn-default" />
</form>
web.php中的路由

Route::post('/uploadImage','ControllerClass@uploadImage');
在控制器类中

public function uploadImage(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);


        if ($validator->passes()) {

            $input = $request->all();
            $uploadedImage = $input['image'];
            // put image to storage/app/public/uploads/images
            $name = Storage::put('/public/uploads/images/', $uploadedImage);

            $visibility = Storage::getVisibility($name);
            // set visibility to true
            Storage::setVisibility($name, 'public');

            // get the url of the uploaded file
            $url = Storage::url($name);
            // return the url
            return response()->json(['url' => $url]);
        }


        return response()->json(['error'=>$validator->errors()->all()]);
    }

文件应存储在目录
storage/app/public
中,因此请确保您的文件存储在此目录中

保存文件后,请确保通过传递文件名作为参数来获取文件的url。。下面是我如何实现的

html表单

<form action="" method="post" id="jobImage">
   <div class="form-group">
     <input type="file" class="form-control" id="image" name="image">
   </div>
   <input type="button" value="Upload Image" onclick="uploadImage()" class="btn btn-default" />
</form>
web.php中的路由

Route::post('/uploadImage','ControllerClass@uploadImage');
在控制器类中

public function uploadImage(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);


        if ($validator->passes()) {

            $input = $request->all();
            $uploadedImage = $input['image'];
            // put image to storage/app/public/uploads/images
            $name = Storage::put('/public/uploads/images/', $uploadedImage);

            $visibility = Storage::getVisibility($name);
            // set visibility to true
            Storage::setVisibility($name, 'public');

            // get the url of the uploaded file
            $url = Storage::url($name);
            // return the url
            return response()->json(['url' => $url]);
        }


        return response()->json(['error'=>$validator->errors()->all()]);
    }

文件夹是符号链接的,但是图像在那里吗?图像在那里尝试在存储之前添加/吗?否则,它将尝试加载相对于网页的文件夹,而不是从网页根目录加载。您的
标记所在的网页的URL是什么?(homestead)和前面的斜杠不起任何作用:(文件夹是符号链接的,但是图像在那里吗?图像在那里尝试在存储之前添加/吗?否则,它将尝试相对于网页加载文件夹,而不是从网页根目录加载。您的
标记所在的页面的URL是什么?(homestead)和前面的斜杠不起任何作用:(是的,这也不起作用,将
/storage/89cdd31f2e0eeacceff96c2a0abb25f.jpeg
作为路径。是的,这也不起作用,将
/storage/89cdd31f2e0eeacceff96c2a0abb25f.jpeg
作为路径。