Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с readfile, Ваборочно открывает 
V
    Опции темы
DASES
  Дата 12.3.2008, 04:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 23.11.2007

Репутация: нет
Всего: нет



Проблема заключается в том что: есть файлы одного расширения, одинаковые права на них, лежат в одной папке, НО некоторые из них readfile() качает и отображает нормально, а на некоторые после скачки выдает "Cannot render the file". В чем проблема?  smile 
PM MAIL   Вверх
DASES
  Дата 12.3.2008, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 23.11.2007

Репутация: нет
Всего: нет



Кстати, если пишем header('Location: file.3gp') то файл воспроизводится. Можно ли как-нить через header предлагать скачать файл?
PM MAIL   Вверх
Fortop
Дата 12.3.2008, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



header('Content-type: application/octet-stream');
header('Location: file.3gp');


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Feldmarschall
Дата 12.3.2008, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Fortop, а зачем там первый? о_О
PM   Вверх
Fortop
Дата 12.3.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(Feldmarschall @  12.3.2008,  09:10 Найти цитируемый пост)
Fortop, а зачем там первый? о_О 

Там второй не нужен smile

Точнее нужен 
Код

Content-Disposition:  'attachment; filename="file.3gp"'


Добавлено через 9 минут и 13 секунд
Да, а это
Код

header('Content-type: application/octet-stream');

Контрольный выстрел в голову. 
Т.е. форсируем браузеры для принудительного диалога скачивания (некоторые особо умные браузеры открывают или воспроизводят известные им mime-типы)



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
DASES
  Дата 13.3.2008, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 23.11.2007

Репутация: нет
Всего: нет



Fortop, пробывал твой вариант, все неоткрывает smile.
Сейчас стоит так:
Код

header('Content-Disposition: attachment; filename='.basename($a));
header('Content-Length: '.filesize($way.$a));     
header ('Content-Type: '.$ext);                
readfile($way.$a);

Нынешний работает выборочно, но если вместо readfile поставить header('Location:') то все открывается.
Кстати, файл скачивается нормального размера только если стоит header('Content-Length: '.filesize($way.$a)); если его нет то он скачивается с непонятным размером(то нормальным, то нет), НО те файлы что скачивались нормально - продолжают работать нормально! 
Можно даже через локацию, но чтобы юзер не видел полного пути до файла(ЭТО ОЧЕНЬ ВАЖНО).
Fortop, твой кстати пробовал и с location и без него.

Это сообщение отредактировал(а) DASES - 13.3.2008, 04:55
PM MAIL   Вверх
DASES
Дата 14.3.2008, 05:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 23.11.2007

Репутация: нет
Всего: нет



smile: мда, как все просто.
Цитата

lcampanis.com
01-Nov-2007 12:55 
If you are trying to force a download from a script and you're having corrupted files, but the download was successful, just make sure you don't have spaces or news lines before and/or after <? script ?>

You can check this by opening your download with a text editor. If you see empty lines or spaces at the top, then that's the problem. 

Если вынести весь мой код в отдельный файл, то все работает :o .

Это сообщение отредактировал(а) DASES - 14.3.2008, 05:34
PM MAIL   Вверх
skyboy
Дата 14.3.2008, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(DASES @  14.3.2008,  04:34 Найти цитируемый пост)
Если вынести весь мой код в отдельный файл

то есть, у тебя там был не только вывод через readfile прочитанного, но и вывод чего-то ещё(HTML-страницы, например)? 0_o
PM MAIL   Вверх
Fortop
Дата 14.3.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(DASES @  13.3.2008,  04:53 Найти цитируемый пост)
Fortop, пробывал твой вариант, все неоткрывает smile.

А подумать? А еще лучше  smile

Воткни это в новый файл и проверь.
Код

<?php
header('Content-type: application/octet-stream');
header("Content-Disposition:  attachment; filename=\"" . basename(__FILE__) . "\"");
readfile(__FILE__);



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
podlom
  Дата 17.3.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.4.2007
Где: Украина, г. Киев

Репутация: нет
Всего: нет



У меня были подобные проблемы с загрузкой файлов. Решение нашел на сайте PHP на странице function.readfile.
Проблема была в неправильно указанных заголовках. Во всех браузерах загрузка файла заработала нормально только после добавления таких вот header-ов:
Код

    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Length: 999');
    header('Content-Disposition: attachment; filename=file.dat');


Это сообщение отредактировал(а) podlom - 17.3.2008, 20:21
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0817 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.