LINUX.ORG.RU

upload interrupt


0

0

есть скрипт для Upload-a файлов 

возникает такая проблема как мне не загружая файл полностью определить имя файла из формы и если он уже есть то оборвать upload ? 
#!/usr/bin/perl -w
use strict;
my $basedir = "/html/html/upload";
my $buffer;
opendir (DIR ,$basedir) or die "error $!\n";
my @d = readdir(DIR);
closedir(DIR);

use CGI;
my $q = new CGI;
my $fn = $q->param("test");

my $file = $fn;
$file =~ s!^.*(\\|\/)!!;
foreach my $key (@d){
        if ($file eq $key) {
                print "Content-type: text/html\n\n";
                print "file with such name already exists in the dir\n";
                exit(0);
        }
}

#несмотря на этот участок ^ браузер все равно ждет то-же время , что #надо для загрузки файла  .
my $error = $q->cgi_error;
if (!$fn && $error) {
        print $q->header(-status=>$error);
        exit 0;
}
open (OUTFILE,">>","/html/html/upload/$file") || die "error $! \n";
while (my $bytesread = read($fn,$buffer,1024)) {
        print OUTFILE $buffer;
}

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

opendir (DIR ,$basedir) or die "error $!\n";
my @dir = readdir(DIR);
closedir(DIR);
print "<h2> DONE </H2>\n";
print "@dir\n";


a vot forma:

<form method="POST" action="/cgi-bin/up.cgi"
ENCTYPE="multipart/form-data">
File 1: <input type="file" name="test">
<br>
<input type="submit" value="upload">
</form>

★★

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.