Автор Тема: (+) image upload - please !!!  (Прочитано 2554 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Mers

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.proweb.to.kg
(+) image upload - please !!!
« : 21 Февраля 2004, 00:24:41 »
Смотрите, этот скрипт закачивает файлы и даже рисунки на сервер, но рисунки почему-то не просматриваются. ( просмотр недоступен )  
Подскажите пожалуйста!


#!/usr/bin/perl
[здесь был кривой код]
« Последнее редактирование: 21 Февраля 2004, 00:35:00 от NeoNox »
Не понял...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
(+) image upload - please !!!
« Ответ #1 : 21 Февраля 2004, 00:42:11 »
Что тебе подсказать? Как просмотреть рисунки?
The documentations is your friend

Оффлайн Mers

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.proweb.to.kg
(+) image upload - please !!!
« Ответ #2 : 21 Февраля 2004, 17:46:41 »
нет, вот скрипт с формой
когда я им закачаю ричунок на сервер, то рисунок становится непросмотримым, почему это происходит ?










Самое главное, чтобы в форме присутствовал параметр enctype="multipart/form-data". Иначе работать не будет.

Ну и создаем Perl-script:
Код (perl):
#!/usr/bin/perl -w

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

if  ($ENV{\'CONTENT_LENGTH\'}){
    $buffer = \'\'; binmode STDIN;
    read(STDIN, $input, $ENV{\'CONTENT_LENGTH\'});
}

$ENV{\'CONTENT_TYPE\'} =~ /multipart\\/form-data; boundary=(.+)$/;
$boundary = \'--\'.$1;

@list = split(/$boundary/, $input);

    for ($num=1; $num<$#list;$num++){
        $item = $list[$num]; $test = $item;
        $item =~ /"([^"]+)"/;
        $field_name = $1;
        $field{$field_name} = $\';
        $field{$field_name}=~ s/\\n|\\r//g;
        if ($test =~ /upload_file\\d*/oi){ & }
}

sub upload{
    $test=~ /Content-type:/i;$thingy=$`;
    $thingy2=$\';$thingy2 =~/\\r\\n\\r\\n|\\n\\n/;$conttype=$`;
    if ($conttype =~ m! (\\w+)/!i) {
        $upload_type=$1;
        $conttype =~ s! $upload_type/!!;
    }
    ($not_required,@names) =split(/;/,$thingy);

        $names[1] =~ /"([^"]+)"/;
        $1 =~ /([^\\\\]+)$/;
        $filename=$1;
        $filename=~ s/ /_/g;
        $filename =~ s/[-\']//g;

        $test=~ /\\r\\n\\r\\n/;
        $file=$\';


open(QQ,">$filename");
binmode QQ;
    print QQ $file;
close QQ;

}
Не понял...

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
(+) image upload - please !!!
« Ответ #3 : 21 Февраля 2004, 22:55:35 »
Mers
Очень криво, очень нефункционально, очень много ошибок.
Модификатор -w, как я понимаю, висит для красоты.

Следующие три строчки могут помочь тебе и сейчас и в будущем:

use CGI::Carp qw(fatalsToBrowser); # Увидишь ошибки в броузере

use strict; # Научишся объявлять переменные и т.д.
use warnings FATAL => \'all\'; # вместо -w, только любая оплошность принимается за критическую ошибку

ps: Посмотри, как это сделанно  в CGI.pm. Или воспользуйся им.
0 OK, 0:1

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28