如何使用 CGI 应用程序上传文件

发布于 2024-10-02 09:15:30 字数 347 浏览 4 评论 0原文

你好 我正在尝试使用 perl cgi-application 上传图像文件。不知道我做错了什么 - 但保存了一个空图像文件(具有正确的名称)。


我的 $picture = $self->query->param('picture') ;
我的$缓冲区; 我的$bytesread;

open (OUTFILE, ">>$user_dir/profile_picture/$picture");
while ($bytesread = read($picture, $buffer, 1024)) {
打印 OUTFILE $buffer;
}

Hi
I am trying to upload image file using perl cgi-application. Not sure what I am doing wrong - but an empty image file (with the right name) gets saved.


my $picture = $self->query->param('picture') ;
my $buffer;
my $bytesread;

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

醉梦枕江山 2024-10-09 09:15:30

阅读 CGI.pm 的“创建文件上传字段”部分 文档。在那里您将看到上传方法将返回一个文件句柄。

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

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

Read the " CREATING A FILE UPLOAD FIELD" section of CGI.pm documentation. There you will see that the upload method will return a filehandle.

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

    my $buffer; my $bytesread;
    while ($bytesread = read($fh, $buffer, 1024)) {
      ...
     }
沐歌 2024-10-09 09:15:30

不要忘记您的 HTML 表单元素还需要指定 enctype='multipart/mixed',否则上传文件流不会被发送。

Don't forget your HTML form element also needs to specify enctype='multipart/mixed', otherwise the upload filestream doesn't get sent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文