Скачать файл, когда пользователь нажимает кнопку диалога - PullRequest
0 голосов
/ 10 октября 2009

У меня открывается диалоговое окно, когда пользователь нажимает на URL. В этом диалоговом окне у меня есть две кнопки: «ОК» (закрывающая диалоговое окно) и «Загрузить файл» (на котором я хотел бы, чтобы файл, который я только что создал с помощью PHP, был загружен при нажатии). Как мне добиться этой функциональности с помощью кнопки «загрузить файл»?

Я пробовал $ .get, но он только извлекает данные из файла и не предлагает пользователю загрузить файл.

Спасибо.

1 Ответ

1 голос
/ 10 октября 2009

Внутри обработчика кликов для этой кнопки:

window.location.href = "path/to/file/on/server.txt";

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

РЕДАКТИРОВАТЬ : Виртуальные файлы в Apache:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /vfiles
    RewriteRule ~vfiles/([a-z]+)\.txt vfile-handler.php?id=$1 [L,QSA]
</IfModule>

Это говорит о том, что http://my.server/vfiles/foo.txt прозрачно перенаправляется внутри сервера Apache для запуска vfile-handler.php, вместо этого передавая его "id = foo" в качестве строки запроса, с которой вы работаете, как и любой другой запрос GET. со строкой запроса. Затем ваш PHP-скрипт соответствующим образом устанавливает тип MIME (в данном случае text/plain, поскольку мы утверждаем, что это файл .txt) и создает ответ так же, как если бы мы создавали HTML-страницу на лету.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...