【问题标题】:Preventing blade php function from encoding symbols防止刀片 php 函数编码符号
【发布时间】:2019-11-18 13:32:29
【问题描述】:

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

<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')

【问题讨论】:

    标签: javascript php laravel encoding laravel-blade


    【解决方案1】:

    如果您期望以下结果

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

    如果有帮助,请告诉我。

    【讨论】:

    • 我的路由 api 看起来像这样,先生,Route::get('image/{foldername}/{filename}','getImageController@getImage')。我认为控制器处理链接的方式有问题,它适用于没有任何子文件夹的目录
    【解决方案2】:

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

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

    我也许还会让路由更简单一些 - 为什么不直接使用 api/image/folder/subfolder1/'.$data-&gt;image 或类似名称?

    【讨论】:

    • 我还是得到了同样的结果
    • 即使您使用我在答案末尾放置的不同路线?应该工作得很好。
    • 路由应该处理文件夹中没有任何子文件夹的图像,它适用于url('api/image',['foldername',$data-&gt;image])。只有 1 个文件夹中有 3 个子文件夹,这就是出现此问题的地方
    • btw @Jesus 解决方案有效,链接正确,%2f 消失了,但图像仍然无法加载,可能与控制器有关
    【解决方案3】:

    当发送到请求 url 将被编码为特殊字符时,您可以使用路由而不是 url。

    尝试使用此代码:

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

    【讨论】:

      猜你喜欢
      • 2017-08-19
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      相关资源
      最近更新 更多