我有一个上传的cgi脚本,如下所示
#!/usr/bin/perl
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;
my $file = $cgi->param('file');
$file=~m/^.*(\\|\/)(.*)/; # strip the remote path and keep the filename
my $name = $2;
open(LOCAL, ">/home/Desktop/$name") or die $!;
while(<$file>) {
$data .= $_;
}
print $cgi->header();
print "$file has been successfully uploaded... thank you.\n";
print $data;
HTML文件如下
<html>
<head>
<title>Test</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.cgi" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
</body>
</html>
我现在得到一个奇怪的错误..
软件错误:
是htdocs / upload.cgi第9行的目录。
如需帮助,请发送邮件至本网站的网站管理员,提供此错误消息以及错误的时间和日期。
答案 0 :(得分:0)
一些建议可能会让您更接近解决方案。
use strict
和use warnings
(始终使用这些)。CGI->new()
而不是new CGI
(不是必需的,但是很容易进入)。$cgi->param('file')
的文件名,它可以正确地获取文件名(好吧,一旦你修复了我之前的错误),但你后来尝试将该文件名视为文件句柄({ {1}})。那不行。