Я хочу скачать файл, когда я нажимаю на ссылку. Файл обслуживается динамически.

<a href="/server/myfunc?id=XXX" download="proposed_file_name">Download!</a>

Но мне нужно иметь возможность отображать ошибку пользователю, если ссылка /server/myfunc?id=XXX не предоставляет файл. Я могу вернуть логическое значение false или любой http-код по этой ссылке, если файл отсутствует.

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

7
crazydiv 4 Мар 2015 в 08:26

2 ответа

Вы не можете сделать это только с html, поскольку это статический язык. Я бы посоветовал вам использовать предложение if/else, написанное на php или java. Здесь у вас есть некоторая документация и конкретный образец здесь. В любом случае здесь вы образец, который может подойти именно для вашего случая (с учетом того, что вы вставляете php в html).

<?php 
var = url
if (isset($var) && ($var === true){ ?>
<a href="/server/myfunc?id=XXX" download="proposed_file_name">Download!</a>
<?php } else { ?>
<p>Hey, there is no URL!</p>
<?php } ?>
0
Abueesp 27 Авг 2015 в 19:18

Я знаю, что отвечаю очень поздно, но это может быть полезно для тех, кто сталкивается с такой проблемой.

При использовании синхронных HTTP-вызовов очень сложно отобразить сообщение об ошибке, так как оно заменит всю веб-страницу, чего мы не хотим.
Итак, лучше использовать AJAX

Щелкните здесь Блог JohnCulviner подробнее - как использовать AJAX для загрузки

Кроме того, перейдите по следующей ссылке SO Загрузите файл по запросу Ajax

0
Karan Kaw 9 Окт 2019 в 14:09