如何从Laravel的资源中获取图像?

如何从Laravel的资源中获取图像?,laravel,laravel-5,Laravel,Laravel 5,我将所有用户文件上载到以下目录: /resources/app/uploads/ 我尝试通过完整路径获取图像: http://localhost/resources/app/uploads/e00bdaa62492a320b78b203e2980169c.jpg 但我得到了一个错误: NotFoundHttpException in RouteCollection.php line 161: 如何通过此路径获取图像 现在我尝试在根目录/public/uploads/中上载AOD文件: $d

我将所有用户文件上载到以下目录:

/resources/app/uploads/
我尝试通过完整路径获取图像:

http://localhost/resources/app/uploads/e00bdaa62492a320b78b203e2980169c.jpg
但我得到了一个错误:

NotFoundHttpException in RouteCollection.php line 161:
如何通过此路径获取图像

现在我尝试在根目录/public/uploads/中上载AOD文件:

$destinationPath = public_path(sprintf("\\uploads\\%s\\", str_random(8)));
$uploaded = Storage::put($destinationPath. $fileName, file_get_contents($file->getRealPath()));
这给了我一个错误:

Impossible to create the root directory 

您可以制作一条专门用于显示图像的路线

例如:

Route::get('/resources/app/uploads/{filename}',函数($filename){
$path=resource_path()。/app/uploads/'.$filename;
如果(!File::exists($path)){
return response()->json(['message'=>'Image not found'.],404);
}
$file=file::get($path);
$type=File::mimeType($path);
$response=response::make($file,200);
$response->header(“内容类型”,$Type);
返回$response;
});
因此,现在您可以转到
localhost/resources/app/uploads/filename.png
,它应该会显示图像。

如果您想从刀片服务器调用它,请尝试
{asset('path/to/your/image.jpg')}

$url=asset('path/to/your/image.jpg')如果您想在控制器中使用它


希望它有帮助=)

您可以在您的刀片文件中尝试此功能。“图像”文件夹位于公用文件夹中

<img src="{{URL::asset('/images/image_name.png')}}" />

对于Laravel的更高版本(上面的5.7):


正如@alfonz所提到的,
resource\u path()
是获取资源文件夹目录的正确方法。 要获取特定的文件位置,代码如下所示

 $path = resource_path() . '/folder1/folder2/filename.extension';

尝试在公用文件夹中上载。。然后您应该能够使用asset()方法进行访问。好的,如何在
存储::put()
中指定公共目录的路径?您可以在保存时使用public_path(),在检索时使用asset()。您的意思是:
存储::put(public_path()./'.$file)
?您可以发布代码片段吗?在Laravel 5.7中,您可以只需
{asset>('/images/image_name.png')}
@Sl4rtib4rtf4st,是的。将编辑我的答案,以反映Laravel 5.7上的上述备选方案,并且,您可以通过在.env文件中设置asset_URL来定义资产路径。@Sl4rtib4rtf4st这类资产的文件夹路径是什么?我是否将其存储在资源中?@abhig10仍在公共文件夹逻辑中不应放置在路径中,它属于t他是控制器还是模型。
 $path = resource_path() . '/folder1/folder2/filename.extension';