首页 > 解决方案 > 防止刀片 php 函数编码符号

问题描述

我的代码中有一个路由调用来显示一个文件夹内的图像,该文件夹有几个基于类别的子文件夹。这是我在数据表中的路由调用以显示图像:

<img id="pic" src="{{url('api/image',['folder/subfolder1',$data->image]}}" style="width:150;height:150"/>

我得到一个错误,导致“文件夹/子文件夹1”上的“/”变为“%2f”,你如何防止这种情况发生?我希望 api 返回看起来像这样的链接:

<img id="pic" src="localhost:8000/api/image/folder/subfolder1/image.jpg/>

相反,我得到了:

<img id="pic" src="localhost:8000/api/image/folder%2fsubfolder1/image.jpg/>

getImage 控制器看起来像这样:

public function getImage($foldername,$filename){
$path = ['UPLOAD_PATH'].'/image';
return Image::make($path.'/'.$foldername'/'.$filename)->response();
}

这是路线api:

Route::get('image/{foldername}/{filename}','getImageController@getImage')

标签: javascriptphplaravelencodinglaravel-blade

解决方案


你不需要逃避你自己的内部路线。使用刀片的非转义 {!! !!}} 反而:

<img id="pic" src="{!! url('api/image',['folder/subfolder1',$data->image] !!}" ... />

我也许还会让路由更简单一点——为什么不直接使用api/image/folder/subfolder1/'.$data->image或类似的?


推荐阅读