OS:windows VISTA Server: IIS7 собственно проблема : следующий код корректно загружает файлы на сервер (долго мучался с binmode но вроде уже работает!)
| Код | #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use CGI; $q = new CGI(); print $q->start_html; $FullPath = $q->param('FileName');
if ($FullPath) { @buf = split(/\\/,$FullPath); $FileName = $buf[$#buf]; print "Full Path is : $FullPath<br>File Name is : $FileName<br>";
$numbytes = 1024;
open(INPUTFILE, "<$FullPath") or die "ERROR OPENING INPUTFILE($FullPath) $!"; open(OUTPUT, ">Uploaded\\$FileName") or die "ERROR OPENING OUTPUT FILE $!"; if (-B $FullPath) { binmode OUTPUT, ':raw'; binmode INPUTFILE, ':raw'; print "THIS IS BINARY FILE<br>"; } elsif(-T $FullPath) { binmode OUTPUT, ':crlf'; binmode INPUTFILE, ':crlf'; print "THIS IS TEXT FILE<br>"; } else { die "<br>ERROR NOT BINARY NOR TEXT FILE Oo<br>"; }
while ($bytesread = read(INPUTFILE, $buffer, $numbytes)) { print OUTPUT $buffer or die "ERROR WRITING $!"; } print "<br>File uploaded" ; close (OUTPUT); close (INPUTFILE); } else { print $q->start_multipart_form(-method=>'post',-action=>'index.cgi'); print $q->filefield(-name=>'FileName'); print "<br>"; print $q->submit("Send File"); } print $q->end_html;
|
но если предварительно не открыть доступ к файлу который я выбираю в браузере (доступ для everyone с полными правами) то файл не загружается на сервер со следующей ошибкой
| Код | Full Path is : C:\Users\QAQC2\Desktop\NDT Request 01-07-10.xlsx File Name is : NDT Request 01-07-10.xlsx Status: 500 Content-type: text/html Software error: Permission denied ERROR OPENING INPUTFILE(C:\Users\QAQC2\Desktop\NDT Request 01-07-10.xlsx)! at C:\inetpub\wwwroot\index.cgi line 16. For help, please send mail to this site's webmaster, giving this error message and the time and date of the error.
|
на многих сайтах есть uploader'ы но мня никогда раньше не просили открыть доступ к файлу )))) так что думаю что-то с кодом не так !
по поводу браузера, этот код не работает на opera mozilla и т.д. а работает только на эксплорере и то версии до Висты максимум ! на других браузерах не отображается полный путь к файлу а только имя файла ! |