|
|
|
| Как сделать так, чтобы по клику по кнопке, в браузере появилось стандартное окно для загрузки файлов? Как это реализовать на php? При этом кнопка по которой нужно кликнуть, размещается внутри формы, при клике форма передаёт данные, и на основе этих данных генерируется файл, который затем должен быть загружен. | |
|
|
|
|
|
|
|
для: dump
(23.04.2011 в 16:04)
| | Можно начать отталкиваться от следующего скрипта (на который следует ссылаться по ссылке - он позволяет загрузить файл text.txt, вместо этого вы можете выдавать любую свою информацию)
<?php
// Задаём имя, которое будет предложено
// клиенту для сохранения файла
header("Content-Disposition: attachment; filename=text.txt");
// В качестве типа файла задаём бинарный поток
header("Content-type: application/octet-stream");
// Отправляем клиенту размер страницы
// в HTTP-заголовке Content-length
header("Content-length: ".filesize("text.txt"));
// Отправляем содержимое файла
echo file_get_contents("text.txt");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(23.04.2011 в 16:08)
| | Да, это понятно. Но как передать данные формы этому скрипту, ведь если на него ссылаться по ссылке, то данные, вводимые пользователем в форме не будут переданы скрипту... | |
|
|
|
|
|
|
|
для: dump
(24.04.2011 в 04:48)
| | а зачем по ссылке? Вставьте кнопку.
Если ссылка тогда
<a href="#" onclick="document.getElementById('id_формы').submit()">clickme</a>
|
| |
|
|
|
|
|
|
|
для: dump
(24.04.2011 в 04:48)
| | Можно поставить путь к этому скрипту в атрибуте action формы, тогда все данные из формы, будут доступны в скрипте выдачи файла. | |
|
|
|
|
|
|
|
для: cheops
(24.04.2011 в 08:55)
| | >будут доступны в скрипте выдачи файла.
Вот! Действительно, после нажатия на кнопку, и скрипт перезагрузиться и выдаст файл, но в поток будет выведен только файл, а можно ли вывести и файл, и ещё страницу интерфейса, для дальнейшей работы пользователя с формой? | |
|
|
|
|
|
|
|
для: dump
(24.04.2011 в 11:04)
| | А нельзя на странице интерфейса предусмотреть ссылку для загрузки файла? Можно и сразу предоставить файл для загрузки, для этого нужно опять же загрузить страницу интерфейса и передать путь к скрипту-загрузчику через META-заголовок Refresh. | |
|
|
|
|
|
|
|
для: cheops
(24.04.2011 в 11:35)
| | Дело в том, что файл должен генерироваться на основе данных, поступающих из формы. Т.е. пользователь ввел данные, потом нажал кнопку "Скачать файл" страница перезагрузилась и приняла первоначальный вид, но помимо этого ещё началась закачка файла. | |
|
|
|
|
|
|
|
для: dump
(24.04.2011 в 12:31)
| | Да, все это возможно, но задачу не обязательно, не нужно, да и невозможно решить одним скриптом. Пусть скрипт обработчик формирует GET-запрос на загрузку файла и передает его в META-тэге Refresh. | |
|
|
|