#perl #hyperlink
#perl #гиперссылка
Вопрос:
У меня есть это:
open(MAIL,"|/usr/sbin/sendmail -t");
## Mail Header
print MAIL "To: $GLOB_OPT{email}n";
print MAIL "From: $GLOB_OPT{from}n";
print MAIL "Subject: $GLOB_OPT{sub}n";
print MAIL qq|Content-Type: text/html; charset=us-asciin|;
print MAIL qq|Content-Transfer-Encoding: 7bitn|;
print MAIL qq|MIME-Version: 1.0nn|;
print MAIL qq|<h3>Download File :</h3><br>|;
print MAIL qq|<a href="$GLOB_OPT{html}" rel="nofollow" target="_blank">Click Here</a>|;
close(MAIL);
Я хочу отправить гиперссылку пользователю, чтобы они могли загрузить файл csv по пути $ GLOB_OPT {html}.
Когда я открываю ссылку в своем электронном письме, она открывает csv в браузере. Я хочу, чтобы вместо этого браузер загрузил файл. Что я могу сделать?
Ответ №1:
Попробуйте использовать content-disposition в заголовках http на стороне веб-сервера. Это работает даже с .htaccess.
Насколько я понимаю, способ отправки электронного письма имеет мало общего с выбором сохранения / отображения в браузере.
Комментарии:
1. Действительно. Ссылка есть ссылка, и ничто в ней не может сказать «Загрузите это». Выбор содержимого — это правильный путь.
2. @David-Dorward: Я думаю, они что-то пропустили в стандарте, например
<a href="http://..." whattodo="save">
.
Ответ №2:
Не используйте системную sendmail
команду. Вместо этого используйте MIME::Облегченный модуль.
У них есть пример кодирования, который в значительной степени делает именно то, что вы хотите сделать.
Таким образом, вы не зависите от внешней команды, которая может работать, а может и не работать (в зависимости от системы и ее конфигурации).
Ответ №3:
Вы могли бы вывести CSV с помощью скрипта, который отправляет браузеру первый mime-заголовок «application / octet-stream» вместо MIME-типа по умолчанию, отправляемого apache (или используемым сервером). Вы также можете настроить сервер на отправку заголовка самостоятельно, связав расширение .csv с типом mime «application / octet-stream». смотрите также Документы apache
Комментарии:
1. итак, в принципе, я не могу дать прямую ссылку на csv. Я должен отправить другому скрипту, который выводит csv и изменяет на что-то вроде text / csv …
2. Вы можете. смотрите вторую ссылку. Итак, в вашем случае это будет что-то вроде «AddType application / octet-stream .csv» в файле.htacces в каталоге, где находятся ваши CSV-файлы.