为什么接受上传的那个perl没法中止?

为什么接受上传的那个perl没法中止?

为什么接受上传的那个perl没法中止?
上传页面up.htm:

<form enctype="multipart/form-data" action="up.cgi" method="post">
<input type="file" name="file"><input type="submit"></form>

接受程序up.cgi

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "ok\n";
exit;


我提交一个100MB的文件,为什么等了半天或一直没法显示ok那步...

我本意是通过$ENV{'CONTENT_LENGTH'}查到文件太大中断程序,但没法中断,还在等~

如何解决啊...


好像是要等上传...
好像是要等上传结束了才能知道文件大小的
-.-
不要检测大小也一样要等
就算我不要知道它的大小,能不能一提交就可以结束程序并显示ok啊?

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "ok\n";
exit;


什么也没了...

这个算是网络协议的缺陷吧
目前好像都不能预知大小
数据包是混合一起发送,接受中不会中断,如果无限大附件,直到服务器超时
等接受完数据后,服务器才会把数据送给perl脚本通知运行




   

先不谈大小,只要是multipart/form-data就没法解决了?
先不谈大小,只要是multipart/form-data就没法解决了?

#!/usr/bin/perl
open(FILE,">file.log");
close(FILE);
print "Content-type: text/html\n\n";
print "ok\n";
exit;

file.log文件是生成了,但页面还是停留在提交页那里...


#!/usr/bin/perl
open(FILE,">file.log");
close(FILE);
print "Content-Type: text/html\n\n";
print "<META HTTP-EQUIV=REFRESH CONTENT='0; URL=up.htm'>";
exit;

一样是这样...

似乎perl可以做些事情,就是没法中断这个提交...


较复杂的想法
相关图像上载:(GIF 格式,8 K)


可能太复杂,不过也算一个思路吧
如果你运行的是 mod_perl,那可以尝试一下自己写个 handler 来处理相关的 phase




   

不是mod_perl...
不是mod_perl...[CCB]9[/CCB]