【发布时间】:2021-09-07 09:24:46
【问题描述】:
我正在尝试上传 .HTML 文件的 Windows 10/Apache/dHTML (Perl) 平台。我有一个表单,允许我浏览以选择要上传的文件。表单行如下。
<FORM encTYPE='multipart/FORM-data' ACTION='uploadx.cgi' NAME='ManMe' METHOD='POST' ONSUBMIT='return reqchk()'>\n";
我在uploadx.cgi 中获得了正确的上传路径和文件以及目标路径和文件,如下面的cmets 所示。实际上传代码如下。
# comment - $upload_filehandle is C:\usr\www\kyhealth.html - correct input location
$upload_filehandle = $page->upload("filex"); # File handle to uploaded file.
# comment - $thefn C:/Steep/USAData/State/KY/Ideals/Health/kyhealth.html - correct output location
open(my $UF_fh,'>',$thefn) || croak "Couldn't open file $filex, $!";
if (index(lc($thefn),'.gif') > -1) {
binmode($UF_fh); # Set file output to binary mode if image.
}
while ( <$upload_filehandle> ) {
print $UF_fh; # Write it out.
}
close $UF_fh;
执行uploaddx.cgi的Apache日志文件中的错误如下。
[Wed Jun 23 15:16:44.349636 2021] [core:error] [pid 9772:tid 1056] [client 192.253.246.153:62520] 脚本“uploadx.cgi”的标头格式错误:标头错误:,引用者: http://steepusa.no-ip.info/scx/cmf2mme.cgi?strmme=SKY_458~422~438~428~430~382_326~366~438~458~450~392_U_level3_326~366~438~458~450~392 [2021 年 6 月 23 日星期三 15:16:44.349636] [perl:warn] [pid 9772:tid 1056] /scx/uploadx.cgi 没有发送 HTTP 标头
在正确的位置使用正确的名称创建输出文件。但是该文件的字节数为零。 uploadx.cgi 文件中没有“Content-type: text/html”标头。它只是尝试上传 该文件并将其放入特定目录中的新文件中,如上所示。而“坏标题:”并没有告诉我太多。
我在这里和其他地方看过很多关于类似问题的帖子,但没有运气。任何帮助,将不胜感激。我不知道如何在这个上移动球。谢谢。
ct
【问题讨论】:
-
ikegami,我不知道我需要发送一个标题。所以我很困惑为什么我会收到错误。在更新结束时,我调用了一个小程序,如下所示。
-
sub getback1 { my $appbgcolr = shift; print "Content-type: text/html\n\n"; print "<HTML><BODY STYLE='BACKGROUND-COLOR:#$appbgcolr;'>\n"; print "<SCRIPT TYPE='text/JavaScript'> window.alert('The file has been uploaded. Verify\\r\\nthe upload in the user interface.'); window.history.go(-1); </SCRIPT>\n"; print "</BODY></HTML>\n"; return; } -
这会是问题吗?我不这么认为。我不知道。
-
我想这可能是它咆哮的标题。它会生成消息,但在我响应警报之前不会为背景着色。我对此感到困惑。
-
updatex 进程是初始选择表单的后端,并在 updatex 结束时的警报消息之后返回到该表单。