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 :: помогите передать архив

 PHP.SU

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


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

> Без описания
246978
Отправлено: 29 Ноября, 2012 - 09:46:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 273
Дата рег-ции: Февр. 2012  


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

[+]


Вот так делаю передачу
PHP:
скопировать код в буфер обмена
  1.  
  2. header('Content-Description: File Transfer');
  3. header('Content-Type: application/octet-stream');
  4. header('Content-Disposition: attachment; filename=' . basename($file));
  5. header('Content-Transfer-Encoding: binary');
  6. header('Expires: 0');
  7. header('Cache-Control: must-header('Pragma: public');
  8. header('Content-Length: ' . filesize($file));
  9. readfile($file);
  10. exit;
  11.  

Файл передается , но при открытии пишет архив поврежден, на самом сервере архив нормальный, архивирую классом зип.
 
 Top
KingStar
Отправлено: 29 Ноября, 2012 - 10:09:11
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




вообще-то плохая идея отдавать файлы с помощью php, тем более большого размера

PHP:
скопировать код в буфер обмена
  1. header ("Content-Type: application/octet-stream");
  2. header ("Accept-Ranges: bytes");
  3. header ("Content-Length: ".filesize($file));  
  4. header ("Content-Disposition: attachment; filename=".basename($file));  
  5. readfile($file);


как-то так


-----
То что программа работает, не означает что она написана правильно!
 
 Top
246978
Отправлено: 29 Ноября, 2012 - 10:11:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 273
Дата рег-ции: Февр. 2012  


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

[+]


А что ты поменял?
И как можно передать фаил пользователю.
(Добавление)
Почему архив приходит битый?

(Отредактировано автором: 29 Ноября, 2012 - 10:16:37)

 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2012 - 10:56:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Во-первых, проверьте сам архив.
Во-вторых, проверьте его, для начала, md5 до и после передачи.

Довольно вероятная причина в том, что в начале бинарника уходят лишние символы и включена буферизация вывода - тогда и заголовки работают и бинарник повреждён.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB