因此,使用上传徽标,它的路径存储在数据库中,如下所示:
C:\ XAMPP \ htdocs中\ laravel \公共\标志\ 1496912432.jpg
我正在显示这样的图像:
<img class="images" id="image" src="{{$business->image}}" />
但是我收到了这个错误:
Not allowed to load local resource: file:///C:/xampp/htdocs/laravel/public/logo/1496912432.jpg
如何解决这个问题?
//修改
控制器:
public function image(Request $request) {
if($request->hasFile('img'))
{
$image = Input::file('img');
$filename = time() . '.' . $image->getClientOriginalExtension();
$path = public_path('logo/' . $filename);
Image::make($image->getRealPath())->fit(303, 200)->save($path);
$file = $request->file('img');
$session = session()->get('key');
$update_image = Business::find($session);
$update_image->image = $path;
$update_image->save();
return ['url' => url('logo/' . $filename)];
}
答案 0 :(得分:2)
使用Laravel file()
存储文件https://laravel.com/docs/5.4/requests#files
将$ path存储到数据库
$path = $request->photo->store('logo');
$request->photo
取决于您的输入文件属性名称。在您的情况下,它应该是$request->img
。
上面的代码将创建一个文件夹(如果不存在),即&#34; logo&#34;并使用随机字符串文件名存储到该文件夹。
同时检查您的配置文件,位于/config/filesystem.php
。默认设置为public
使用asset
函数从公用文件夹
<img class="images" id="image" src="{{ asset($business->image }}" />
答案 1 :(得分:0)
你可以用两种方式做事
最佳方式是在图像保存时将更新URL路径保存到db
的URL路径$path = $request->photo->store('logo'); // in 5.4
另一种方法,如果你不能改变数据库网址,你可以像这样做一些黑客
$file = explode('/public/', $business->image);
echo asset($file[1]);
答案 2 :(得分:0)
您希望将所有文件存储在Web根目录中。由于跨域安全性,您无法从http protcol访问file:// domain / protocol。通过使用Laravel进行存储和检索,它将来自同一主机。