2016-09-28 166 views
1

我正在编写一个系统来上传和显示一些图像,但是我对上传后访问它们的正确方法感到困惑。无法访问Laravel存储

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(); 
} 

这工作得很好,我已经符号链接storage的建议,但是如果我使用$filename变量从数据库中,我收到了404什么是正确的路径,产生在这里插入作为内嵌图片src属性?

图像标记看起来像这样: <img src="storage/images/89cdd31f2e0eeacceff96c2a0abb252f.jpeg"> 该文件夹是绝对符号链接的,因为我可以在finder中关注它。

+0

该文件夹是符号链接的,但在那里的图像? – ceejayoz

+0

图像有 – userqwert

+1

尝试添加一个/之前存储?否则,它会尝试加载相对于网页的文件夹,而不是从网站根目录中加载。 – aynber

回答

2

固定这一点。

php artisan storage:link不适用于宅基地。相反,删除文件夹,使用homestead sshln -s ~/projects/my-website/storage/app/public/ ~/projects/my-website/public/storage在机器上手动重新创建它们。

1

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

如果是这样,您是否尝试过使用URL method from the Storage facade来获取图像的src URL?

实施例:

use Illuminate\Support\Facades\Storage;

$url = Storage::url('file1.jpg'); //acquire URL

+0

是的,这也不起作用,并提供'/ storage/89cdd31f2e0eeacceff96c2a0abb252f.jpeg'作为路径。 – userqwert