500分悬赏:如何解决Delphi的CGI 不能接受客户上传大容量数据问题? (300分)

  • 主题发起人 主题发起人 dreamer
  • 开始时间 开始时间
D

dreamer

Unregistered / Unconfirmed
GUEST, unregistred user!
我相信如果大家用Delphi编写www服务器应用
迟早会碰到这个问题的.

不要ASP 等其它替代方案.
纯CGI 解决方案.
纯DELPHI 解决方案.
 

《form action="...." method="post">
post可以传送大量数据
get只可以传1k左右
 
to www:
Post传输到大约80K,CGI就不工作了.
这个问题不光是我在问了
实际上当初我怀疑是客户端的问题
后来多方调试之后发现是CGI服务器接受能力有限,
估计是Delphi的www服务器应用体系内部的错误.
不知哪位大侠可以修改一下.
 
>>>>Post传输到大约80K,CGI就不工作了.
是不是IE的连接时间或Server的连接时间设置的短呢?
我们的CGI全中国30个分公司用,数据量也很大,易死锁.
没有您说的问题.您改改Server的 Configuration试试.
 
to Wumeng:
我是在内部网上测试的
当然不公存在连接时间过短问题.

你们用的CGI上传过大文件吗?
关健是一次性上传的流量.
请你帮着测试一下,
如真没问题,
我倒是放心了
 
为什么不采用socket来传呢?Socket可没有这个限制呀。
用CGI来传除了程序方便外,还有别的什么优点?
 
SOS,SOS,SOS:
现在又有了新的发现,我用ASP 上传,亦发现同样问题,看来是WEB服务器存在问题.

哪位大侠用过Win2000中的IIS 做WEB服务,
是否存在类似的不能上传大容量数据问题.
是否哪个地方需要特别配置?
 
会不会是硬件有问题?
我前一阵有ISDN没办法上传8K以上的文件。后来只好改用336MODEM了。。。。
 
唉大富翁总是让我失望
可我又不得不抱着一线希望.
我用CGI 试验不行.
我做成自动化部件放在ASP中也不行。
但是纯ASP却又可以。
为什么啊
我都急死了
 
对dreamer的问题,我不太明白,但为什么不用NMSTRM和NMSTRMSERV呢? 以前,我还用数据
库方式传过几兆的数据,都没问题。
 
产生这个问题的原因与IE和IIS无关, 用Get方法只能在url中带上少许信息作为url的参数;
用post方法时,IE将form中的内容上传到web server,web server通过环境将数据传给cgi程序,
不能上传大数据的原因是环境允许的容量太少,你有两个解决方法:
(1)加上环境变量的空间,在NT中应该有该项设置;
(2)使用有wincgi(在建立delphi project时,有三个选项), web server传数据给win cgi不时通过
环境,而是建一个.ini临时文件,利用该文件来传数据到win cgi中。
 
primer:
CGI,WINCGI,ISAPI我都尝试过均有问题.
另外,理应我做成自动化部件,和CGI彻底无关了,接收的是ASP的参数,
结果还是出现了问题。而纯ASP却是可以的。
真是奇怪。
我估计是Delphi里有一个Win API的公用变量或常数设得太小了,
或是一个数据类型的范围太窄导致的。
 
post大于64k就要考虑分段传输的问题了。
 
不知C++Builder5有没有这个问题.
 
dreamer:
是web服务器的问题。我用Win95+apache3.1.6只能传输4096bit,
后改为OmniHTTPd Professional的web服务器。可完成28M的文件传输。
在www.pchome.net有下载。
在html中<FORM enctype="multipart/form-data" method="post" 。。。>要用,
我想你知道。
delphi中content中有全部的未解释的数据。用以上的方式提交,delphi的contentfields
中的解释不对。

以上是wtwww的回答,他的HTML使这个帖子不能继续发言,现在可以了。
 
dreamer:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部