问题描述
我正在尝试上传 .HTML 文件的 Windows 10/Apache/dHTML (Perl) 平台上工作。我有一个表单,可让我浏览以选择要上传的文件。表单行如下。
<FORM encTYPE='multipart/FORM-data' ACTION='uploadx.cgi' NAME='ManMe' METHOD='POST' ONSUBMIT='return reqchk()'>\n";
我得到了正确的上传路径和文件以及uploadx.cgi中的目标路径和文件,如下面的注释所示。实际上传代码如下。
# 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 [Wed Jun 23 15:16:44.349636 2021] [perl:warn] [pid 9772:tid 1056] /scx/uploadx.cgi 没有发送 HTTP 标头
在正确的位置使用正确的名称创建输出文件。但是该文件的字节数为零。 uploadx.cgi 文件中没有“Content-type: text/html”标题。它只是尝试上传 文件并将其放入特定目录中的新文件中,如上所示。而“坏标题:”并没有告诉我太多。
我在这里和其他地方看了很多关于类似问题的帖子,但没有运气。任何帮助,将不胜感激。我不知道如何在这个球上移动球。谢谢。
ct
解决方法
第一条消息接在第一条消息之后。脚本发出的标头格式错误,因为根本不发出任何标头就是格式错误的标头/响应。
uploadx 过程中没有编码 connetnt 头
HTTP 请求必须产生响应。您似乎声称您不发送响应,这将导致这种错误。当您使用 CGI 脚本时,产生此响应的责任落在脚本上。如果您不这样做,服务器通常会发送 500 错误响应并记录一条消息,例如您询问的消息。
请记住,脚本不发送标头的一个常见原因是它在有机会这样做之前就死了(由于编译时或运行时错误)。像这种情况应该在日志文件中留下更早的消息。
,事实证明,我的 ping、下载和上传速度显着下降。当我刚刚与我的提供商进行速度测试时,我的上传速度实际上为零。我的电信供应商开了一张票。这是我第一次遇到这种情况。谢谢池上。
,我从热点互联网连接更改为路由器并解决了格式错误的标头问题。所有上传测试均通过路由器连接成功。