使用ASP、ASP.NET 2.0或PHP5在IIS6上无超时的开放源代码文件上载

使用ASP、ASP.NET 2.0或PHP5在IIS6上无超时的开放源代码文件上载,php,asp.net,asp-classic,file-upload,timeout,Php,Asp.net,Asp Classic,File Upload,Timeout,我在寻找一种跨平台、跨浏览器的上传文件的方式,这样就没有超时。上传量不一定很大——因为上传者的连接速度慢,有些上传需要很长时间——但是服务器还是超时了 我听说有很多方法可以将文件分块上传,这样服务器就不会决定上传超时。在搜索了所有我能看到的是专有的上传帮助程序和Java和Flash(SWFUpload)小部件,它们不是跨平台的,不是成批上传的,或者不是免费的 我想在这些平台(ASP、ASP.NET 2.0或PHP5)中的任何一个平台上都能做到这一点,尽管我对所有这些.NET类/控制器/项目/模块

我在寻找一种跨平台、跨浏览器的上传文件的方式,这样就没有超时。上传量不一定很大——因为上传者的连接速度慢,有些上传需要很长时间——但是服务器还是超时了

我听说有很多方法可以将文件分块上传,这样服务器就不会决定上传超时。在搜索了所有我能看到的是专有的上传帮助程序和Java和Flash(SWFUpload)小部件,它们不是跨平台的,不是成批上传的,或者不是免费的

我想在这些平台(ASP、ASP.NET 2.0或PHP5)中的任何一个平台上都能做到这一点,尽管我对所有这些.NET类/控制器/项目/模块/visual studio/编译/等东西不是很了解,所以在.NET 2.0上运行的某种可运行的完整项目会很有帮助。我可以假设PHP和ASP会更直接

除非我完全遗漏了什么,我怀疑/希望我是这样,否则在任何语言或平台上,合理的网络上传都是非常艰苦的工作


所以我的问题是:如何使用自由软件跨平台执行web浏览器上载,使它们不会超时?有可能吗?

也许你可以看看Wordpress的来源?他们有一个“标准”文件上传器和一个flash文件上传器

这就是说,写一些东西,把一些东西切成小块,然后再放回一起,这是一项非常艰苦的工作


一个管道磁带解决方案是将其分成小块,上传这些小块并在服务器上解包。

我想您真正想要的解决方案是获得对服务器的更多控制。例如,IIS除了在web.config或php.ini中提供的任何设置外,还有一个超时设置。如果php在FastCGI中运行,那么您也有FastCGI配置

然后,您可以在php.ini/web.config中设置相关的文件大小、内存和超时设置:

php.ini-

web.config-

<httpRuntime executionTimeout="1000" maxRequestLength="400000">


Asp.net提供了创建html模块的可能性,这些模块提供了一些更流畅的(Asp.net)上载控件,例如多次上载、直接到磁盘(减少服务器内存使用量)和上载进度控件,但其中大多数都是商业化的。

无论上载完成后以何种语言处理文件,实际上载由HTTP服务器(Apache、IIS等)处理。我在Flash中看到“进度条”或其他图形上传的方式是,对上传文件的第二个脚本进行AJAX调用(该脚本在上传完成之前锁定该线程),第一个脚本检查传入临时文件的文件大小,以确定完成的百分比

如果在上载时出现服务器超时,则问题可能是您的HTTP服务器(Apache/IIS)配置存在问题,并且连接打开日志保存得不够。如果您试图设置PHP文件上载系统并收到PHP错误消息,则
PHP.ini
中的“
upload\u max\u filesize
”、“
memory\u limit
”或“
post\u max\u size
”设置可能不正确(请参阅)