Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Можно ли скачивать сразу несколько файлов?

Сообщения:  [1-9] 

 
 автор: cheops   (16.05.2013 в 22:39)   письмо автору
 
   для: Владимир55   (16.05.2013 в 19:07)
 

Один документ - один файл. Если хотите, чтобы пользователь сохранил несколько файлов - открывайте несколько документов, который он сможет сохранить (например, редиректами через JavaScript).

  Ответить  
 
 автор: confirm   (16.05.2013 в 19:23)   письмо автору
 
   для: Владимир55   (16.05.2013 в 19:07)
 

Да причем тут форма, не она же определяет как вести себя серверу .
Я же писал как можно выдать несколько файлов, и это процесс несколько сложнее, чем выдача одного файла и "потираем руки", вы можете сотни заголовков выслать, толку от этого не будет.

Вы можете на сервере запаковать файлы в архив, это операция несложная. Запакуйте и отдайте одним файлом, и не морочьте себе голову, ибо отдачу файла частями (на чем и можно построить выдачу нескольких фалов) вы сами вряд ли решите.

  Ответить  
 
 автор: Владимир55   (16.05.2013 в 19:07)   письмо автору
 
   для: confirm   (16.05.2013 в 18:50)
 

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

Так и последовательно не получается!

$myCsvFile1 = "Вова;Петя"; 
$myCsvFile2 = "Маша;Саша"; 

header("Content-Description: File Transfer\r\n"); 
header("Pragma: public\r\n"); 
header("Expires: 0\r\n"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0\r\n"); 
header("Cache-Control: public\r\n"); 
header("Content-Type: text/plain; charset=UTF-8\r\n"); 
header("Content-Disposition: attachment; filename=\"myfile1.csv\"\r\n"); 
echo $myCsvFile1; 

header("Content-Description: File Transfer\r\n"); 
header("Pragma: public\r\n"); 
header("Expires: 0\r\n"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0\r\n"); 
header("Cache-Control: public\r\n"); 
header("Content-Type: text/plain; charset=UTF-8\r\n"); 
header("Content-Disposition: attachment; filename=\"myfile1.csv\"\r\n"); 
echo $myCsvFile2; 

exit; 


Собственно, никак не получается из одной формы закачивать два файла.

Это вообще-то возможно?
А если возможно, то как конкретно?

  Ответить  
 
 автор: confirm   (16.05.2013 в 18:50)   письмо автору
 
   для: Владимир55   (16.05.2013 в 18:47)
 

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

  Ответить  
 
 автор: Владимир55   (16.05.2013 в 18:47)   письмо автору
 
   для: confirm   (16.05.2013 в 17:16)
 

> если форма, то, например, список с именем file[], со множественным выбором, в котором указаны эти значения.

Как на практике вывести в два файла (myfile1.csv и myfile2.csv ) две переменные?

$myCsvFile1 = "Вова;Петя";
$myCsvFile2 = "Маша;Саша";

header("Content-Description: File Transfer\r\n");
header("Pragma: public\r\n");
header("Expires: 0\r\n");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0\r\n");
header("Cache-Control: public\r\n");
header("Content-Type: text/plain; charset=UTF-8\r\n");
header("Content-Disposition: attachment; filename=\"myfile1.csv\"\r\n");
echo $myCsvFile1;
exit;

  Ответить  
 
 автор: confirm   (16.05.2013 в 17:16)   письмо автору
 
   для: Владимир55   (16.05.2013 в 17:03)
 

Запрос? Да вам и самому это без труда )
<a href="domain/?file[]=11&file[]=22&file[]=33......"
где file, это будет массив GET параметров под этим ключом, а его значения id запрашиваемых файлов. Либо, если форма, то, например, список с именем file[], со множественным выбором, в котором указаны эти значения.

  Ответить  
 
 автор: Владимир55   (16.05.2013 в 17:03)   письмо автору
 
   для: confirm   (16.05.2013 в 15:54)
 

>можно отослать обычный запрос со множеством параметров, ссылающихся на запрашиваемые файлы.

Можете показать такой запрос?

  Ответить  
 
 автор: confirm   (16.05.2013 в 15:54)   письмо автору
 
   для: Владимир55   (16.05.2013 в 13:39)
 

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

  Ответить  
 
 автор: Владимир55   (16.05.2013 в 13:39)   письмо автору
 
 

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

  Ответить  

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования