В моем коде есть вызовы маршрута, чтобы показать изображение внутри папки, в которой есть пара подпапок на основе категорий. Это мой вызов маршрута в 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')



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам не нужно избегать вашего собственного внутреннего маршрута. Используйте лезвие без экранирования {!! !!}} вместо:
<img id = "pic" src = "{!! url('api/image',['folder/subfolder1',$data->image] !!}" ... />
Я бы также, возможно, сделал маршрутизацию немного проще — почему бы просто не использовать api/image/folder/subfolder1/'.$data->image или что-то подобное?
Даже если вы используете другой маршрут, который я указал в конце ответа? Должно было нормально работать.
Маршруты должны обрабатывать изображения в папке без каких-либо подпапок, это отлично работает для url('api/image',['foldername',$data->image]). там только 1 папка с 3 подпапками, вот где эта проблема появилась
Кстати, решение @Jesus работает, ссылка верна, %2f пропал, но изображения по-прежнему не загружаются, возможно, это как-то связано с контроллером.
Если вы ожидаете этот результат ниже
<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'). я думаю, что что-то не так с тем, как контроллер обрабатывает ссылки, он отлично работает с каталогами, в которых нет подпапок
Вы можете использовать маршрут вместо URL-адреса при отправке запроса, URL-адрес будет закодирован как специальный символ.
попробуйте использовать этот код:
<img id = "pic" src = "{{route('public/image/')}$data->image}}">
я все еще получил тот же результат