Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> оределить тип рисунка, загрузка рисунков на сервер 
:(
    Опции темы
ежик
  Дата 15.11.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 19.9.2005
Где: Южно-Сахалинск

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



необходимо загрузить файлы на сервер определенного типа (рисунки: BMP JEPG PNG GIF)
определение типа файла по расширению даже не расматривались.
может у когонить есть какието соображения


--------------------
Прежде чем задать вопрос прочитай инфу!!!
PM MAIL ICQ   Вверх
arto
Дата 15.11.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



perldoc Image::Info
PM MAIL ICQ   Вверх
ежик
Дата 16.11.2005, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 19.9.2005
Где: Южно-Сахалинск

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



вот код который я использую
но ка только я начинаю использовать Image::Info то файлы записываются некоректно
может ктонить подскажет код определения типа рисунка и сохранения его на сервере


Код

#!/usr/perl/bin/perl -w

print "Content-type: text/html\n\n";

use strict;
use warnings;
use CGI qw/:standard/;
use File::Spec();
use CGI::Upload();
use Image::Info qw(image_info);

foreach my $TEMP (upload('files')) {
        my $err='0';
        my $types = uploadInfo($TEMP)->{'Content-Type'};
        my $info = image_info($TEMP);
        if ($types eq 'image/gif') {}
        elsif ($types eq 'image/bmp') {}
        elsif ($types eq 'image/jpeg') {}
        elsif ($types eq 'image/x-png') {}
        else {$err='1';}
        print $types."<BR>\n";
        print $info->{file_media_type}."<BR>\n";
        if ($err eq '0') {
        ( my $name = $TEMP ) =~ s#.*[\]:\\/]##;
        $name =~ tr/ /_/ unless $^O eq 'MSWin32';
        $name =~ tr/-+@a-zA-Z0-9. /_/cs;
        ($name) = $name =~ /^([-+@\w. ]+)$/;
        my $path = File::Spec->catfile( "/", $name );
        my $i = 2;
        while (1) {
            last unless -e $path;
            $name =~ s/([^.]+?)(?:_\d+)?(\.|$)/$1_$i$2/;
            $path = File::Spec->catfile( "/", $name );
            $i++;
        }
        open my $OUT, '>', $path or die "Couldn't open file: $!";
        binmode $OUT, ':raw';
        while ( read $TEMP, my $buffer, 1024 ) {
            print $OUT $buffer;
        }
        close $TEMP or die $!;  # so the temporary file gets deleted
        close $OUT or die $!;   # so file size can be grabbed below
        }

    }

--------------------
Прежде чем задать вопрос прочитай инфу!!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

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


 




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


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

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