Perl 如何使用CGI应用程序上载文件
嗨 我正在尝试使用perl cgi应用程序上载图像文件。不确定我做错了什么-但是保存了一个空的图像文件(名称正确)Perl 如何使用CGI应用程序上载文件,perl,file-upload,cgi-application,Perl,File Upload,Cgi Application,嗨 我正在尝试使用perl cgi应用程序上载图像文件。不确定我做错了什么-但是保存了一个空的图像文件(名称正确) 我的$picture=$self->query->param('picture') 我的$buffer; 我的$bytesread 打开(输出文件“>>$user\u dir/profile\u picture/$picture”) 而($bytesread=read($picture,$buffer,1024)){ 打印输出文件$buffer; }阅读文档的“创建文件上载字
我的$picture=$self->query->param('picture')
我的$buffer; 我的$bytesread 打开(输出文件“>>$user\u dir/profile\u picture/$picture”)
而($bytesread=read($picture,$buffer,1024)){
打印输出文件$buffer;
}阅读文档的“创建文件上载字段”部分。在这里,您将看到upload方法将返回一个filehandle
my $fh = $self->query->upload('picture');
my $buffer; my $bytesread;
while ($bytesread = read($fh, $buffer, 1024)) {
...
}
不要忘记HTML表单元素还需要指定enctype='multipart/mixed',否则上传文件流不会被发送。我看到,上传方法只适用于普通的旧CGI,而不适用于CGI::applicationSince
query()
返回一个普通的旧CGI
对象,它应该工作得很好。这是我所期望的——但它没有。其他人则在论坛上抱怨。这可能是cgi::application中的错误。请放心,cgi::application中没有影响文件上载的错误。我一直在用它。代码或HTML/Javascript中存在错误。也许是水蟾蜍说的,我找到了。这就是我所缺少的-binmode OUTFILE;-它处理非文本格式