2010-11-15 68 views
-1

嗨 我正嘗試使用perl cgi-application上傳圖像文件。不知道我在做什麼錯 - 但是一個空的圖像文件(使用正確的名稱)被保存。如何上傳使用CGI應用程序的文件


我的圖片$ = $自我>查詢 - >參數( '畫面');
my $ buffer; my $ bytesread;

open(OUTFILE,「>> $ user_dir/profile_picture/$ picture」);
while($ bytesread = read($ picture,$ buffer,1024)){
print OUTFILE $ buffer;
}

回答

3

閱讀CGI.pm文檔的「創建文件上傳字段」部分。在那裏你會看到上傳方法將返回一個文件句柄。

my $fh = $self->query->upload('picture'); 

    my $buffer; my $bytesread; 
    while ($bytesread = read($fh, $buffer, 1024)) { 
     ... 
    } 
+0

我看到,上傳方法只適用於普通的舊CGI而不適用於cgi :: application – prat 2010-11-15 21:19:36

+0

因爲'query()'返回一個普通的舊CGI對象,所以它應該工作得很好。 – Quentin 2010-11-15 21:26:20

+0

這就是我所期望的 - 但事實並非如此。其他人則在論壇上抱怨。它可能是一個在CGI ::應用程序中的錯誤。 – prat 2010-11-15 23:02:37

0

不要忘記你的HTML表單元素還需要指定ENCTYPE =「多部分/混合」,否則上傳FILESTREAM不會發送。