防止刀片php函数对符号进行编码

时间:2019-07-09 03:37:30

标签: javascript php laravel encoding laravel-blade

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

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

我遇到错误,导致'folder / subfolder1'上的'/'变为'%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')

3 个答案:

答案 0 :(得分:2)

如果您希望在下面获得此结果

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

然后您可以在下面尝试此操作。

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

让我知道是否有帮助。

答案 1 :(得分:1)

您无需逃避自己的内部路线。使用刀片的非转义{! !!}}代替:

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

我也许还会使路由更简单-为什么不只使用api/image/folder/subfolder1/'.$data->image或类似的字词?

答案 2 :(得分:1)

发送到请求的url时,您可以使用route代替url。

尝试使用此代码:

<img id="pic" src="{{route('public/image/')}$data->image}}">