防止Blade PHP功能编码符号



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

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

我遇到了一个错误,导致"/'on"文件夹/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')

如果您期望此结果以下

<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"/>

让我知道是否有帮助。

您无需逃脱自己的内部路线。使用Blade的非排放{!!!!}}而不是:

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

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

发送到请求URL时,您可以使用路线而不是URL编码为特殊字符。

尝试使用此代码:

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

最新更新