2017-02-09 85 views
0

我有本地文件系统的Laravel 5.3。在我.ENV的APP_URL是:Laravel 5.3本地存储路径

http://localhost/myapp 

我挂存储到公共

php artisan storage:link 

我有一个形象:

myapp/storage/app/public/defaults/test/file.png 

在数据库的路径保存这样:

public/defaults/test/file.png 

所以在我的刀片.PHP我尝试访问图像

<img src="{{ Storage::url($user->test)}}" width="" alt=""> 

但图像没有显示和图像的URL是:

http://localhost/storage/defaults/test/file.png 

所以为什么它忽略了APP_URL?即使我改变了这个链接:

http://localhost/myapp/storage/defaults/test/file.png 

图像没有显示出来。

如何使用Storage :: url访问myapp/storage/app/public/defaults/test/file.png中的图像?

BR

回答

2

试试这个:

1)火php artisan storage:link命令,如果您还没有

2)在数据库中,相对于根/公共目录存储路径前缀存储

所以,如果你有根/公/默认/测试/ file.png图像,然后在数据库中,存储路径:存储/默认/测试/ file.png

3),最后在查看,显示如下:

<img src="{{ asset($user->test)}}" width="" alt=""> 

确保$ user-> test具有存储/默认值/测试/文件的值。PNG

OR

3)如果你不想前缀存储存储到数据库中,然后存储路径,如:

默认/测试/ file.png

并在视图中:

<img src="{{ asset('storage/' . $user->test)}}" width="" alt=""> 

注意: 经过Laravel 5.4测试,但很确定它也能用于Laravel 5.3。


这里是我创建了一个完整的演示这说明图像上传和显示:

https://github.com/xparthx/laravel5.4-image-upload

+0

我链式存储在我的数据库是:存储/默认/测试/ file.png 物理文件在这里:root/storage/app/public/defaults/test/file.png并且我显示像' blubbering

+0

尝试上传是这样的: 'image'=> $ r-> image-> store('defaults/test') –

+1

@blubbering,这里是我创建的一个完整的演示,它演示了图像上传和显示:https: //github.com/xparthx/laravel5.4-image-upload –

0

如果您要访问的文件在您的存储文件夹,你需要为链接

Route::get('storage/defaults/test/{filename}', function ($filename) 
{ 
    $imagePath = storage_path() . '/defaults/test/' . $filename; 

    if(!File::exists($imagePath)) { 
     //Not have file do something here 
    }; 

    $file = File::get($imagePath); 
    $type = File::mimeType($path); 

    $response = Response::make($file, 200); 
    $response->header("Content-Type", $type); 

    return $response; 
}); 

创建路线现在你可以通过你的链接访问

你有另一种方式,例如作为保持你的形象在[你的项目]/public/images /这样你可以通过http://localhost/images/file.png访问你的图片(不需要创建路线)

Bu T I建议你在你的服务器实例/数据/图像 创建一个新的文件夹并将其在Apache虚拟主机设置允许路径

Alias /images /var/www/data/images 

<Directory /var/www/data/images> 
    IndexOptions FancyIndexing FoldersFirst 
    Options MultiViews Indexes 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory> 

希望这有助于