现在要实现上传100M大的文件。
方法一,用VS2008自带控件,FileUpload,在web.confing设置。
<httpRuntime executionTimeout="3600" maxRequestLength="819000" />
也试过设置成这样
<httpRuntime executionTimeout="3600" maxRequestLength="819000" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/>
还是不行,常有两种状态:一个是找不到服务器,一个是上传上传就显示空白页。
方法二,就是提供免费的上传控件来用用。
要求:配置简单(像swfupdaae这类,难用,的就免谈了。。。)
给分要求:
50分是散发。
150分,专给一个采用的提供方法人。
最后,多谢大家,事因,实在急,也搞了很久,因无办法,多谢。
------解决方案--------------------------------------------------------
需要修改的地方
上载大文件时,可使用 元素的 maxRequestLength 属性来增加文件大小的最大允许值,例如:
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
</configuration>
其中:maxRequestLength:指示 ASP.NET 支持的HTTP方式上载的最大字节数。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。executionTimeout:指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。在当文件超出指定的大小时,如果浏览器中会产生 DNS 错误或者出现服务不可得到的情况,也请修改以上的配置,把配置数加大。
另外,上载大文件时,还可能会收到以下错误信息:
aspnet_wp.exe (PID: 1520) 被回收,因为内存消耗超过了 460 MB(可用 RAM 的百分之 60)。
如果遇到此错误信息,请增加应用程序的 Web.config 文件的 元素中 memoryLimit 属性的值。例如:
<configuration>
<system.web>
<processModel memoryLimit="80"/>
</system.web>
</configuration>
------解决方案--------------------------------------------------------
试试 这几个
分卷压缩后 小文件分多次上传
http://www.open-open.com/ajax/Upload.htm
------解决方案--------------------------------------------------------
你还要考虑脚本超时啊。网络传输100M需要很长时间的
Server.ScriptTimeout = 99999;
------解决方案--------------------------------------------------------
直接用ftp上传
public void Upload()
{
if (FileUpload1.HasFile)
{
string fileName = FileUpload1.FileName;
string path = "ftp://localhost/" + fileName;
FtpWebRequest ftpWebRequest = FtpWebRequest.Create(path) as FtpWebRequest;
ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
ftpWebRequest.Credentials = new NetworkCredential("UserName", "Password");
using (Stream stream = ftpWebRequest.GetRequestStream())
{
byte[] data= FileUpload1.FileBytes;
stream.Write(data, 0, data.Length);
}
}
}
QQ群:59557329 .NET技术开发联盟
希望大家可以踊跃参加,积极讨论
------解决方案--------------------------------------------------------
给个建议给你,考虑用二进制上传看看。
------解决方案--------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
Server.ScriptTimeout = 3600;
}
------解决方案--------------------------------------------------------
上传100M
大文件使用ftpwebrequest,断点续传
大文件上传使用ftp或用组件如neatupload、SWFUload ,分块上传
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
</configuration>
其中:maxRequestLength:指示 ASP.NET 支持的HTTP方式上载的最大字节数。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。executionTimeout:指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。在当文件超出指定的大小时,如果浏览器中会产生 DNS 错误或者出现服务不可得到的情况,也请修改以上的配置,把配置数加大。
增加应用程序的 Web.config 文件的 元素中 memoryLimit 属性的值。
<configuration>
<system.web>
<processModel memoryLimit="80"/>
</system.web>
</configuration>