У кого есть пример докачкы

Печать RSS
187


ツ ツ ツ
0
Сейчас появилась потребность в этой функции, начал искать оптимальный вариант, собственно в 7 посте вариант хороший только большие файлы не выдать, оперативки не хватает, начал разбираться в чем проблема в моем коде из 7 поста, так вот, пропустил функцию flush() того и глючило, браузер ждал конца выполнения скрипта, в циклах после sleep(1); нужно поставить flush(); и все будет отлично, ну а так как мне кажется вариант оптимальный, оперативку не так грузит, можно по скорости ограничения ставить, ну а чтоб все телефоны нормально принимали файл, нужен Rewrite и нормальный мим тип, потому что application/octet-stream некоторые телефоны принимают как не известный формат
Изменил: Lugaro (10.04.2010 / 20:51)

2000 лет д.н.э.
0
Тупой вопрос, если просто отдавать файл скриптом, сразу весь, скажем 5мб, это оч сильно грузит сервер?
// браузер любого нормального телефона, даже очень простого, определяет формат файла при скачивании, по содержимому.
Если закачка пошла то 99% что определит сам, даже если заголовок октет-стрим и нет расширения у файла.
Сам вчера своим кирпичем проверял))
file.EXT
size: 6112 bite
type: image/jpeg
recerved: no.
Скачивал по такому адресу: site.ru/file/1/

ツ ツ ツ
0
32. ramzes, ну не знаю, я тестил с какой то нокии, когда скачиваешь она не определяла, а с нормальным мимом норм
>Скачивал по такому адресу: site.ru/file/1/
Опять же не у всех так, опера мини мод вообще сохранит его как 1, я вот у себя файлы храню в отдельной папки с именем 454555.up а в базе храню реальное имя и потом реврейтом подставляю, выходит чтото типа http://test1.ru/forum/file/8/fcaf81f87580aa1daae1c88fe428fe80/793px-100_Yen_lighter.JPG = http://test1.ru/forum/file/ид файла/сессия/793px-100_Yen_lighter.JPG и норм всё качает, плюс выдачи файла скриптом в том что не нужно заморачиватся при опланде с расширениями, а так любой файл можно грузить и не парится, ну и канеш ещё один плюс это антилич

2000 лет д.н.э.
0
Можно в принципе и выдавать имя в урл, правда я уже с родных арбузов 7 разных мобильных попробывал.
Есть проблемы с именем файла, точнее не проблема, а просто сохраняет с именем file а не из заголовка.
Но тип файла определил все и открыли картинку без проблем))
во, еще вопрос, как определить с каким заголовком миме типа файл выдавать что бы безопасно и не октет-стрим? Раньше просто не пользовался такой шнягой..

ツ ツ ツ
0
Я думаю файлы с мимом text/* лучше отдавать как октет-стрим чтоб xss небыло, ну и всё вроде бы
Автор
Дух
0
Только никто не взал во мнимание функцию set_time_limit() которую как правило жмут хостеры. А без нее кроме картинок больше ничего не отдаш. Разве что маленький вес.

ツ ツ ツ
0
36. TLENSi, почему не кто не взял во внимания, просто она не стоит такого внимания, на нормальных хостах не кто не чего не жмет
Изменил: Lugaro (13.04.2010 / 02:25)

Ктулху
0
На тему определения типа файла, в линуксе есть такая хорошая утилитка "file".
Использовать можно так: $type=shell_exec("file -i /home...(путь к файлу)");
$ file --mime-type screenshot_001.png 
screenshot_001.png: image/png
Вот примерно это он выдаст (вторая строка). Минус данного метода в том что 99% говнохостенков боятся за свою безопасность, и вместо реального решения проблемы просто запрещают очень много функций (shell_exec и exec в том числе)
Выбирайте правильный хостинг если реально хотите использовать нормальные методы =)
ЗЫ, тип определяется не по расширению, сам юзаю этот способ, файлы храню в виде 10 цифр (time unix)

2000 лет д.н.э.
0
О, Шифт, спасибо. Как раз это и интересовалоsmile тоже файлы без расширения храню в уникстайм.
Завтра проверю включена поддержка шелл комманд или нетsmile

Ктулху
0
Блин, =)
не $type=shell_exec("file -i /home...(путь к файлу)");
а
$type=shell_exec("file --mime-type /home...(путь к файлу)");
39, всегда пожалуйста =)
Изменил: ктулху (13.04.2010 / 03:07)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск