我正在使用laravel在学校项目上工作,我有一个图像目录,这些图像会随着时间的推移而变化,我试图只将这些图像的名称显示为没有扩展名的链接,但我不会这样做。知道如何隐藏扩展名,当我点击链接时,它就不会起作用。
<?php
$dir_nom = '../images'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.' --> ('point')
$dir = opendir($dir_nom) or die('Erreur de listage : le répertoire nexiste pas'); // on ouvre le contenu du dossier courant
$fichier= array(); // on déclare le tableau contenant le nom des fichiers
$dossier= array(); // on déclare le tableau contenant le nom des dossiers
while($element = readdir($dir)) {
if($element != '.' && $element != '..') {
if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
else {$dossier[] = $element;}
}
}
if(!empty($fichier)){
echo "<p>images : \n\n</p>";
echo "\t\t<ul class=rien>\n";
foreach($fichier as $lien) {
echo "\t\t\t<a href=\"../images$lien \">$lien</a><br>\n";
}
echo "\t\t</ul>";
}
closedir($dir);
?>
?>
答案 0 :(得分:0)
您必须使用base_path
函数以确保您具有打开此目录的正确路径。
在许多情况下,它由于错误的路径,所以只需验证路径。或者您可以将图像目录放在公共目录中,然后您就可以轻松访问它。
对于路径,即使您在Linux发行版中,它也不会是..\images
或../images
而只是ìmages
。
答案 1 :(得分:0)
它适用于此:
<?php
$dirname = 'images';
$dir = opendir($dirname);
while($file = readdir($dir)) {
if($file != '.' && $file != '..' && !is_dir($dirname.$file)) {
echo '<a href="'.$dirname.'/'.$file.'">'.$file.'</a>'; } } closedir($dir);
?>
答案 2 :(得分:0)
创建控制器和路线以获取图像。 route参数将是图像名称,因此您可以从控制器获取它。
Route::get('img/{img}', 'ImageController@getImage')->name('image');
您的控制器getImage()
方法将如下所示:
use Intervention\Image\Facades\Image;
//...
public function getImage($img)
{
return Image::make(asset('img/'.$img.'.jpg'))->response();
}
asset()
帮助程序创建位于public
文件夹中的给定资源的绝对路径。
所以现在,由于路线,扩展不再显示。如果您希望仅通过此路线访问您的图片,请改用storage。
最后,您可以使用视图中的route()
帮助程序获取路线的网址。
<a href="{{ route('image', 'imageNameWithoutExtension') }}">Link</a>