在我的Laravel 5.1应用中,我将图像存储在存储/应用/上传文件夹中。
我的local
磁盘:
<?php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app/uploads'),
],
// other configuration...
?>
事情是,我无法找到一种方法来在图像文件上传后使用它们,例如作为<img>
标记的来源。基本上,我需要检索图像的有效路径,因此可以在页面上使用它。
对于部署我使用提供解决方案的Envoyer。根据{{3}}:
如果您使用的是Laravel,则在存储用户上传的文件时,应将其存储在应用程序的存储目录中。然后,您可以使用&#34;管理链接文件夹&#34; Envoyer的功能,用于从公共目录到存储目录创建符号链接。 &#34;管理链接文件夹&#34;按钮可以在&#34; Deployment Hooks&#34;项目标签。
..这很清楚。
但我如何&#34;链接&#34;我本地开发环境中的存储和公开文件夹? Laravel是否提供了一种方法,或者我是否需要手动在我的环境中创建符号链接?
答案 0 :(得分:5)
有几个选择:
创建一个输出文件的控制器
class AssetController {
public function show($id) {
$file = File::findOrFail($id);
return Response::make(Storage::get($file->storage_key), 200, ['Content-Type' => $file->mime_type]);
}
}
创建符号链接 public / assets =&gt;存储/应用程序/ 强>
将文件上传到公开/资源,而非存储/应用
使用网络服务器上的重写来提供存储/应用文件夹中的文件 - 如何操作取决于您使用的是哪种网络服务器。对于 nginx ,您可以使用类似
的内容rewrite ^/v1/assets/(\d+) /../storage/app/$1;