Предотвращение функции Blade php от кодирования символов

В моем коде есть вызовы маршрута, чтобы показать изображение внутри папки, в которой есть пара подпапок на основе категорий. Это мой вызов маршрута в datatable для отображения изображения:

<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')
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
78
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вам не нужно избегать вашего собственного внутреннего маршрута. Используйте лезвие без экранирования {!! !!}} вместо:

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

Я бы также, возможно, сделал маршрутизацию немного проще — почему бы просто не использовать api/image/folder/subfolder1/'.$data->image или что-то подобное?

я все еще получил тот же результат

Rian R 09.07.2019 07:40

Даже если вы используете другой маршрут, который я указал в конце ответа? Должно было нормально работать.

Watercayman 09.07.2019 16:22

Маршруты должны обрабатывать изображения в папке без каких-либо подпапок, это отлично работает для url('api/image',['foldername',$data->image]). там только 1 папка с 3 подпапками, вот где эта проблема появилась

Rian R 10.07.2019 05:11

Кстати, решение @Jesus работает, ссылка верна, %2f пропал, но изображения по-прежнему не загружаются, возможно, это как-то связано с контроллером.

Rian R 10.07.2019 05:13
Ответ принят как подходящий

Если вы ожидаете этот результат ниже

<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}','getImageControll‌​er@getImage'). я думаю, что что-то не так с тем, как контроллер обрабатывает ссылки, он отлично работает с каталогами, в которых нет подпапок

Rian R 09.07.2019 07:28

Вы можете использовать маршрут вместо URL-адреса при отправке запроса, URL-адрес будет закодирован как специальный символ.

попробуйте использовать этот код:

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

Другие вопросы по теме