Автор Тема: Закачка. Скрипт прилагается.  (Прочитано 7403 раз)

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

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Закачка. Скрипт прилагается.
« Ответ #15 : 23 Июля 2002, 18:07:55 »
Serchey спасибочи за разбор, сейчас ещё возьмусь за этот скрипт, о результатах расскажу.

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Закачка. Скрипт прилагается.
« Ответ #16 : 23 Июля 2002, 18:37:45 »
Цитировать
($name)=(/name=\\"([^\\"]*)\\"/); - - - - - лажа
$body=~s/\\n$//;
$body=~s/\\r$//;
($filename)=(/filename\\"([^\\"]*)\\"/); - - - - - лажа
...

попробуй ($name) = ($header =~ /name=\\"?([^"\\]*\\"/);
($filename) = ($header =~ /filename=\\"?([^"\\]*\\"/) соответственно.


С этим вообще не работает, а вот

Цитировать
правильно будет $userfilename1="$filedup\\_$userfilename";


действительно помогло, но не совсем, теперь файлы как бы уходят, прописывается в txt файл что пришло, а вот сам файл (картинка, архив) превр. в бинарный файл размером от 3 до 60 байт

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Закачка. Скрипт прилагается.
« Ответ #17 : 23 Июля 2002, 19:42:42 »
Извени, вышла ошибочка:
Цитировать
($name) = ($header =~ /name=\\"?([^"\\]*\\"/);
($filename) = ($header =~ /filename=\\"?([^"\\]*\\"/) соответственно

не поставил ")":
($name) = ($header =~ /name=\\"([^"\\]*)\\"/);
($filename) = ($header =~ /filename=\\"([^"\\]*)\\"/) соответственно.
Ты 100% процентов работаешь под Виндой(ну ладно, 99%), а потому перед записью в файл укажи binmode:
Цитировать

open(F,">$fotodir/$userfilename1") || die "Can\'t write: $!\\n";
binmode(F);
print F $userfoto;
close F;

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Закачка. Скрипт прилагается.
« Ответ #18 : 24 Июля 2002, 07:48:15 »
В общем такой скрипт получился, ошибок нет, но и файлы не сохраняет.. даже однобайтовых сейчас не делает..
#!/usr/local/bin/perl -w
#fileput.pl
#############
#############
$datafile="fotos.txt"; #
$fotodir="C:/"; #
$cgi = "http://127.0.0.8/cgi-bin/fileput.pl"; #ÊÀÊ_ÂÛ_ÎÁÎÇÂÀËÈ_ÑÊÐÈÏÒ
#############
#
#############
print "Content-type: text/html\\n\\n"; #
if($ENV{\'REQUEST_METHOD\'} eq \'GET\'){$query=$ENV{\'QUERY_STRING\'};}
else{sysread(STDIN,$query,$ENV{\'CONTENT_LENGTH\'});}
if($query eq \'\'){
print <











Èìÿ
Ìûëî
Êîìåíòàðèé
Ôîòî




FORM
}
else{
if($ENV{\'CONTENT_TYPE\'}=~/multipart/){
  ($bound)=($ENV{\'CONTENT_TYPE\'}=~/boundary=(\\S+)/);
  @parts=split(/\\n--$bound(-)*/,$query);
  @parts=grep($_ ne \'\' ,@parts);
  foreach(@parts){
    ($header,$body)=split(/\\n\\s*\\n/,$_,2);
    ($name) = ($header =~ /name=\\"([^\\"]*)\\"/);
    $body=~s/\\n$//;
    $body=~s/\\r$//;
    ($filename) = ($header =~ /filename=\\"([^\\"]*)\\"/);
    if($name eq \'username\'){$username=$body;}
    if($name eq \'useremail\'){$useremail=$body;}
    if($name eq \'usercomment\'){$usercomment=$body;}
    if($name eq \'userfoto\'){$userfoto=$body;$userfilename=$filename;}
    }
  }
else{}
$userfilename1=$userfilename;
$filedup=0;
while(-e "$fotodir/$userfilename1"){
  $userfilename1="$filedup\\_$userfilename";
  $filedup++;
  }
open(F,">$fotodir/$userfilename1");
binmode(F);
print F $userfoto;
close(F);
open(DATA,">>$datafile");
print DATA "$username::$useremail::$userfilename1::$usercomment\\n";
close(DATA);
print "";
print "Файлик закачан";
print "";
}

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Закачка. Скрипт прилагается.
« Ответ #19 : 02 Августа 2002, 12:45:53 »
Скрипт закачки из FAQ точно ли рабочий?
http://progres.h1.ru/cgi-bin/up2.pl
не работает

Люди! Помогите! Я устал от этих закачек, 2 недили не могу настроить.... Есть сервер, пустой, на фри хостинге(http://ini.h1.ru). Скину пароли кто сможет хотя бы этот примитивный скрипт настроить там. Оплачу работу в этот же день, почтовым переводом. Мне очень очень надо чтобы была простая закачка - и тут же (ниже формы) обзор всей директории с галочками(кнопками) для удаления файла. Всё. По цене обговорим, напишите rec@ezmail.ru, по возможности отвечу сразу, на тех же условиях приму готовый скрипт

The Undertaker

  • Гость
Закачка. Скрипт прилагается.
« Ответ #20 : 05 Августа 2002, 10:39:31 »
А как насчёт обменника? если надо он там

логин: script
пасс: LLk9F8rS

Оффлайн Energizer

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kondrmed.ru
Закачка. Скрипт прилагается.
« Ответ #21 : 05 Августа 2002, 11:12:38 »
Yuraz вот попробуй запустить эту функцию закачки, единственное эта функция которая обрабатывает, не полный скрипт...

что будешь зачачивать -> $praiz.  
 
sub praiz_close
{
   my $praiz = param(\'praiz\');
                my($format1);
                my $path_praiz="../www/name/file/"; #### куда закачивать будем
   
   # проверяем
                 if ($praiz eq "")
   {
      error(\'Файл не был выгружен !\');
   }
   else
   {
            my $name=$praiz;
            my($filename,$i,$TOname,$savename,$bytesread,$buffer);

            $filename=$name;
      
            $i = rindex( $filename,"\\\\") + 1 ;  
            $TOname = substr( $filename, $i, 255 );
            
            $savename  = "$path_praiz/".$TOname;
            #### проверка какой файл был закачен, допускаем только файл с расширением zip, xls, doc
            if ( ($filename !~ /zip/i) && ($filename !~ /xls/i) && ($filename !~ /doc/i) )
            {
               error(\'Файл должен быть загружен в формате - Zip, Excel или Word\');
            }
            #### delite old
            opendir(DIR,"$path_praiz") or die;
            my @files=readdir DIR;
            closedir(DIR);
            foreach my $files(@files)
            {
               unlink("$path_praiz/$files");
            }
            ### close
            open (IMG, "> $savename") || die "Can\'t open $savename: $!";
             flock IMG, $LOCK_EX;
             while ($bytesread=read($filename,$buffer,1024)) { print IMG $buffer; }
             flock IMG, $LOCK_UN;
             close(IMG);
            
            $praiz=$TOname;
            
            $format1=$praiz;
            my @temp=split /\\./,$format1;
            $format1=$temp[1];
         }
         
   
}

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Закачка. Скрипт прилагается.
« Ответ #22 : 06 Августа 2002, 09:29:30 »
Energizer, спасибо, уже справился с этой задачей, благодаря Глебу с этого форума, так же ещё нащёл много файловых скриптов, как раз с закачкой и ещё многих функции, ссылка ниже
http://www.scriptsearch.com/Perl/Scripts_and_Programs/File_Management

 

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