![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| ежик |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 19.9.2005 Где: Южно-Сахалинск Репутация: нет Всего: 1 |
Достала меня эта загрузка файлов???
Задача такая: 1) Надо загрузить только фотографии на сервер формата JPG, GIF или PNG размером меньше 3 метров. 2) Каким образом определить тип файла, не по его расширению. Наподобие IMAGE::INFO 3) Каким образом определить размер файла. 4) Сохранить файл в каталоге, но если такой файл существует, то переименовать в любой другой. Если есть, у кого код такой Приблуды попрошу предоставить Но ответы типа смотри Perldoc меня не устраивают, желательно реальные примеры. Спасибо за внимание --------------------
Прежде чем задать вопрос прочитай инфу!!! |
|||
|
||||
| BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 3 Всего: 12 |
1,2,3 - никто за Вас писать готовый код не будет, Вам arto уже пожсказал как узнать тип файла.
размер файла можно узнать прочитав, например, $ENV{'CONTENT_LENGTH'}. 4 -
|
|||
|
||||
| sharq |
|
||||||||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
смотри поиск + ре на проверку типа файла
Чем тебя готовые решения в виде модулей не устаривают? Можешь открывать файл на чтение и искать в них: GIF87 (.gif) или JFIF (.jpeg) и т.д. - хотя это геморр.
Сохранить - это открыть файл на запись ЗЫ Если ты думаешь, что за тебя кто-нибудь весь код напишет, то ты ошибаешься. Попробуй сам, есил не получится, поможем. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||||||||
|
|||||||||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Размер файла можешь так же определять по ходу загрузки на сервер, примерно так:
Другими словами, мы грузим только нужно кол-во байт, как только размер привысил максимально допустимый размер, згрузка прекращается. Только код я не тестировал. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Kannabismus |
|
|||
|
Тим Тоуди Профиль Группа: Участник Сообщений: 45 Регистрация: 20.11.2005 Репутация: нет Всего: 2 |
Это сообщение отредактировал(а) Kannabismus - 22.11.2005, 03:53 |
|||
|
||||
| ежик |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 19.9.2005 Где: Южно-Сахалинск Репутация: нет Всего: 1 |
Вот мой пример записи и определения типа файла.
все работает если поле files не одно а несколько но как только я вставляю модуль Image::Info
тогда файл записывается но при просмотре он неотображается в теле нет заголовка GIF... и т.д. --------------------
Прежде чем задать вопрос прочитай инфу!!! |
||||
|
|||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Думаю проблема в этих строках:
Что-то открытие файла у тебя очень странно выглядит, да и его дескриптор. Попробуй эту часть заменить на такую.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| sharq |
|
||||||||||||||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
korob2001 ты не прав, так можно делать и так даже лучше, не надо беспокоиться об именование дескриптора, perl сам это сделает и можно не закрывать дескриптор.
ежик
Лучше писать так:
Это вообще ужас, как так можно писать???
Если ты используешь upload, то используй его до конца.
Значит ты не пишешь заголовок картинки. И последнее - раз ты ограничиваешь POST, то
Это сообщение отредактировал(а) sharq - 22.11.2005, 12:31 -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||||||||||||||
|
|||||||||||||||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
sharq - насчёт именования понятно, всё же код выглядит намного понятнее, когда ты сам даёшь имя дескриптору. Объясни мне пожалуйста, чем же лучше, когда Perl выберает дескриптор самостоятельно? Насчёт закрытия не прав ты. Файл можно конечно не закрывать, но это всё же рекомендуют делать практически в каждом учебнике по Perl. Так же при работа с базой, можно и не отключаться от базы, это произойдёт автоматически, но опять же это рекомендуют делать. Наверное не просто так. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
korob2001 вопрос не в наглядности, а в том, что глобальный дескриптор, назначаемый нами, может уже существовать и произойдут нехорошие вещи.
Ларри Уолл. Camel Book.
На счет закрытия я не спорю, но иногда полезно не закрывать. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| Bolt |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 21.2.2005 Репутация: нет Всего: нет |
понимает Perl начиная с версии 5.006 (кстати Уолл именно так и рекомендует работать с файлами) недавно столкнулся с этим, залив скрипт на хостера у которого стоит Perl v.5.004 и PHP 5… ммм-да. т.е. или проверять версию Perl в начале скрипта или писать традиционно
|
||||
|
|||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |