正在生成格式错误的标头

问题描述

我正在尝试上传 .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、下载和上传速度显着下降。当我刚刚与我的提供商进行速度测试时,我的上传速度实际上为零。我的电信供应商开了一张票。这是我第一次遇到这种情况。谢谢池上。

,

我从热点互联网连接更改为路由器并解决了格式错误的标头问题。所有上传测试均通过路由器连接成功。