Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отдать пользователю альбом файлов [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: ZIPовать на "лету"
Гость
Отправлено: 23 Марта, 2009 - 15:36:09
Post Id


УДАЛЁН










Вообще если у пользователя стоит DM то он встаривает в браузер IE какието плагины и ActiveX элементы это точно
Если почитать про API этих элементов то вероятно можно передать ему на очередь несколько чайлов для скачки
 
 Top
Onuchin Artem
Отправлено: 23 Марта, 2009 - 17:20:24
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2009  
Откуда: Протвино


Помог: 0 раз(а)




Скачивание сразу нескольких файлов можно организовать с помощью IFRAME

index.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.    foreach (new DirectoryIterator('c:/apache/localhost/www/test/janisjoplin') as $fileInfo)
  4.       if (!$fileInfo->isDot())
  5.            $files[] = $fileInfo->getFilename();
  6.  
  7. ?>
  8.  
  9. <html>
  10.    <head>
  11.        <style>
  12.         iframe {
  13.           display: none;
  14.           }
  15.        </style>
  16.    </head>
  17.    <body>
  18.       <h1>Janis Joplin</h1>
  19. <?PHP foreach ($files as $file): ?>
  20.     <iframe src="downloader.php?file=<?PHP echo $file ?>">
  21.        <?PHP echo $file ?>
  22.     </iframe>
  23. <?PHP endforeach; ?>
  24.   </body>
  25. </html>
  26.  



downloader.php - нужен, чтобы послать правильные заголовки
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $file = $_GET['file'];
  4. //check_file($file); //ОБЯЗАТЕЛЬНО ПРОВЕРИТЬ ТОТ ЛИ ЭТО ФАЙЛ
  5. header("Content-type: audio/mpeg3");
  6. header("Content-Disposition: attachment; filename=\"".$file."\"");
  7. $fp = fopen('c:/apache/localhost/www/test/janisjoplin/'.$file, 'rb');
  8. fpassthru($fp);
  9. fclose($fp);
  10.  


Эти скрипты только для примера - их нельзя использовать, т.к. они содержат уязвимость и требуют переработки
(Добавление)
упс в IE6 не работает
(Добавление)
Поменял header("Content-Disposition: attachment; filename=\"".$file."\"");
на
PHP:
скопировать код в буфер обмена
  1. header("Content-Disposition: inline; filename=\"".$file."\"");


Заработало. Очень странно... Если IFRAME ссылаются прямиком на файлы, то открывается QuickTime... Надо разобраться.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB