J'ai un appel d'itinéraire dans mon code pour afficher une image dans un dossier qui a quelques sous-dossiers basés sur des catégories. Ceci est mon appel d'itinéraire dans datatable pour afficher l'image:
Route::get('image/{foldername}/{filename}','getImageController@getImage')
J'ai eu une erreur car le '/' on 'folder / subfolder1' change en '% 2f', comment éviter cela de se produire ?? je m'attends à ce que l'API renvoie un lien qui ressemble à ceci:
public function getImage($foldername,$filename){ $path = ['UPLOAD_PATH'].'/image'; return Image::make($path.'/'.$foldername'/'.$filename)->response(); }
à la place j'ai obtenu:
<img id="pic" src="localhost:8000/api/image/folder%2fsubfolder1/image.jpg/>
le contrôleur getImage ressemble à quelque chose comme ceci:
<img id="pic" src="localhost:8000/api/image/folder/subfolder1/image.jpg/>
voici l'API de la route:
<img id="pic" src="{{url('api/image',['folder/subfolder1',$data->image]}}" style="width:150;height:150"/>
3 Réponses :
Vous n'avez pas besoin d'échapper à votre propre route interne. Utilisez la lame non échappée {!! !!}} à la place:
<img id="pic" src="{!! url('api/image',['folder/subfolder1',$data->image] !!}" ... />
Je voudrais peut-être aussi rendre le routage un peu plus simple - pourquoi ne pas simplement utiliser le api / image / folder / subfolder1 /'.$ data- > image
ou similaire?
j'ai toujours le même résultat
Même si vous utilisez l'itinéraire différent que j'ai mis à la fin de la réponse? Aurait dû bien fonctionner.
Les routes sont censées gérer les images dans un dossier sans aucun sous-dossier, cela fonctionne bien pour url ('api / image', ['foldername', $ data-> image])
. il n'y a qu'un seul dossier contenant 3 sous-dossiers, c'est là que ce problème est apparu
btw @Jesus solution fonctionne, le lien est correct,% 2f est parti, mais les images ne se chargent toujours pas, cela peut avoir quelque chose à voir avec le contrôleur
Si vous attendez ce résultat sous
<img id="pic" src="{{url('api/image/folder/subfolder1/' . $data->image }}" style="width:150;height:150"/>
Alors vous pouvez essayer ceci ci-dessous.
<img id="pic" src="localhost:8000/api/image/folder/subfolder1/image.jpg" />
Faites-moi savoir si cela vous aide.
/ p>
mon api de route ressemble à ceci monsieur, Route :: get ('image / {nom de dossier} / {nom de fichier}', 'getImageControll er @ getImage')
. Je pense que quelque chose ne va pas avec la façon dont le contrôleur gère les liens, cela fonctionne bien avec les répertoires qui n'ont pas de sous-dossiers
Vous pouvez utiliser route à la place de l'url lors de l'envoi de la requête. L'URL sera encodée en tant que caractère spécial.
essayez d'utiliser ce code:
<img id="pic" src="{{route('public/image/')}$data->image}}">