【问题标题】:link to images with laravel使用 laravel 链接到图片
【发布时间】:2018-03-21 13:40:56
【问题描述】:

我正在使用 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);
?>
     ?>

【问题讨论】:

  • 既然是学校项目,估计身边应该有老师帮你吧?
  • 不确定你在这里问什么,代码看起来不错。在images 之后你可能需要/ 吗?第二个,见stackoverflow.com/questions/2395882/…

标签: javascript php html laravel


【解决方案1】:

创建一个控制器和一个路由来获取您的图像。 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() 帮助程序获取路由的 URL。

<a href="{{ route('image', 'imageNameWithoutExtension') }}">Link</a>

【讨论】:

  • 又看了两遍问题,我现在觉得我没抓住重点,根本没有回答真正的问题。告诉我。
  • 老实说我还没有尝试过:/ 很多家庭作业和考试非常感谢你,我明天会告诉你
【解决方案2】:

你必须使用base_path 函数来确保你有正确的路径来打开这个目录。 在许多情况下,它是由于路径错误,所以只需验证路径。或者您可以将图像目录放在公共目录中,然后您可以轻松访问它。 对于路径,它不会是..\images../images,而只是ìmages,即使你在Linux发行版中。

【讨论】:

  • 感谢您的回答,但它仍然无法正常工作,我应该在路由文件中做些什么吗?
【解决方案3】:

它适用于这个:

<?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); 
    ?>

【讨论】:

    猜你喜欢
    • 2014-01-30
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2017-03-01
    • 2013-12-12
    • 1970-01-01
    相关资源
    最近更新 更多