|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Igor Nikolaev 2:5030/266 14 Aug 2000 04:31:15 To : Ilya Rubtsov Subject : Re: чтение бинарных файлов (CGI) -------------------------------------------------------------------------------- Ilya Rubtsov <perl@perl.pp.ru> wrote: > Хммм... Hу, покомпактней, да, и что с того? Ты про мои ошибки вроде > что-то говорил? И где же они? То что я не проверяю путь к файлу на [skip] > Прошу указать на мои конкретные ошибки(с учетом всего, что я сказал). : $file = "h:/apache/htdocs/xext/$list[$random]"; my? : open (FILE, $file); or die... : binmode(FILE); : @image = <FILE>; array на input совершенно не нужен, в плохом случае отожрёт массу памяти. : $flsize = -s $file; -s на в нетривиальных случаях может показать лажу, $file *уже* прочитан тобой, stat FILE пожалуйста или просто length $image ;-) Уж если размер файла получен, то не грех проверить, что он ненулевой. : binmode(STDOUT); : print "Content-type: image/jpeg\n"; : print "Content-leight: $flsize\n\n"; Параметр 'Content-leight' не имеет смысла. Лучше не закладываться на особенности квантования и буферизации пакетов в os и выводить объект одним буфером. : for (@image) { : print; : } Если прижало распечатать массив, то print @image; Если jpeg большой, памяти мало, в картинке \n не встречается, то увеличивается шанс вылететь по отсутствию памяти. : close (FILE); Перетащить в начало. Как результат, предложенный тобой код не очень корректно делает много лишнего и ненужного. imho в качестве примера его лучше не приводить - слишком много править, ничего не остаётся... -- Игорь Hиколаев --- ifmail v.2.12.os.sensi * Origin: Рупь давай. (2:5030/266@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/13416bff26569.html, оценка из 5, голосов 10
|