PHP и HTML: ссылка на скачивание файла не работает

#php #html #laravel #hyperlink #download

#php #HTML #laravel #гиперссылка #Скачать

Вопрос:

В следующем коде перечислены все файлы, содержащиеся в определенной папке на моем локальном компьютере, как вы можете видеть, я повторяю путь к файлу внутри тега, правильно используя атрибут href.

Итак, проблема в том, что когда я нажимаю на тег, он не приводит меня к загрузке файла, если я не скопирую ссылку и не вставлю ее на другую вкладку браузера, почему это происходит? Как я могу это исправить?

 <h5>Attached Files</h5>

<?php
    $date = $dateCreated->format('d-m-Y');
    $thepath = public_path().'/uploads/binnacle/'.$date.'/'.$activity->activity_id;

    $handle = opendir($thepath);
    $x = 1;
    while(($file = readdir($handle))!= FALSE) {
        if($file != "." amp;amp; $file != ".." amp;amp; $file != "thumbs" amp;amp; $file != "thumbs.db") {

            echo $x.".- "."<a href='$thepath/$file' target='_blank'>$file</a><br>";

            $x  ;
        }
    }
    closedir($handle);
?>
  

ПРИМЕЧАНИЕ: Это происходит со всеми типами файлов, включая изображения, файлы Excel, текстовые документы и т.д.


РЕШЕНИЕ ОТ @WereWolf — Альфа:

 <?php
    $date = $dateCreated->format('d-m-Y');
    $thepath = "/uploads/binnacle/".$date."/".$activity->activity_id;

    $handle = opendir(public_path().$thepath);
    $x = 1;
    while(($file = readdir($handle))!= FALSE) {
        if($file != "." amp;amp; $file != ".." amp;amp; $file != "thumbs" amp;amp; $file != "thumbs.db")
            {
            echo $x.'.- '.'<a href="'.asset($thepath.'/'.$file).'" target="_blank">'.$file.'</a><br>';
            $x  ;
        }
    }
    closedir($handle);
?>
  

Комментарии:

1. Вы случайно используете Symfony или Laravel?

2. Куда это вас приведет вместо этого?

3. Кроме того, переменные не будут отображаться внутри одинарных кавычек '$thepath/$file'

4. @Fred-ii- Я использую Laravel

5. @Fred-ii- Просто изменил его на это: '<a href="'.$thepath.'/'.$file.'" target="_blank">'.$thepath.'/'.$file.'</a><br>' и я получаю тот же результат

Ответ №1:

Внесите некоторые изменения:

 // Remove the public_path()
$thepath = 'uploads/binnacle/'.$date.'/'.$activity->activity_id;
  

Затем в ссылке:

 "<a href='" . asset($thepath/$file) . "' target='_blank'>$file</a><br>";
  

Примечание: Laravel есть File компонент, вы можете его использовать, проверьте его в исходном коде.

Комментарии:

1. Также Laravel есть File компонент, вы можете использовать его, проверьте его в исходном коде.