现在要实现上传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分,专给一个采用的提供方法人。最后,多谢大家,事因,实在急,也搞了很久,因无办法,多谢。
方法一,用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分,专给一个采用的提供方法人。最后,多谢大家,事因,实在急,也搞了很久,因无办法,多谢。
解决方案 »
- 在线求助不用JS实现的 Asp.net TextBox获取焦点后改变字体颜色
- 对于CommonLibrary.Net这个库如何使用。
- 怎么asp.net制作留言板?
- 我要知道某一周的某一个星期的日期,这个怎么写?
- ASPX中类的记录集返回问题
- 快来接分啊,超简单问题有关页面转向和弹出窗体,立即给分
- 这样的样的代码如何写
- 初学者问:在ASP.NET中能用timer 吗?
- 下了个源代码 如何在vs上运行 ?新手
- C# 如何写访问windows共享文件判断用户名密码的权限提供指定的程序功能
- form提交给ashx以后,ashx在什么地方、怎么取值?
- .net的!有关fckeditor文本编译器的,弄的我糊里糊涂的,懂的来帮下!
<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
this.FileUpload2.SaveAs(path + this.FileUpload2.FileName);
还是无法解决上传超过100M,无法上传的,那就算了,提供控件,最好自己在远程测试过的最好,因为本地有一个问题就超时的问题,本地测试是可以的,我也是这样,但上了服务器就不行了
多谢大家,多谢有劳了。。
Server.ScriptTimeout = 99999;
我的确是这样设置了,<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
但是超过30M还是提示提不到服务器,服务器内存可能有几十G,应该不会超60%。
就是上传不了,急
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技术开发联盟
希望大家可以踊跃参加,积极讨论
{
Server.ScriptTimeout = 3600;
}
大文件使用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>
上传组件
去看看这个吧
我用ExtUpload组件上传 单个文件1.64G上传至服务器ok的. 多文件上传共有4.65G.
额 ,FTP上传的话也不错.貌似有个类专门是FTP上传类的吧.
FTP的话, 你需要有FTP服务器. 网上有很多下载.public class ftp
{
public ftp()
{
//
//TODO: 在此处添加构造函数逻辑
//
} // FTP 配置信息
static string ftpServerIP = "192.168.0.1";//这里放ftp地址
static string ftpUserID = "test";//这里放用户名
static string ftpPassword = "111";//这里放密码
public static string uri = "";
public static bool UploadFile(string filename)
{
FileInfo fileInf = new FileInfo(filename); //月份
string monthstr = "";
if (DateTime.Now.Month < 10)
{
monthstr = "0" + DateTime.Now.Month.ToString();
}
else
{
monthstr = DateTime.Now.Month.ToString();
} //天数(这应该是看一天上传可多少文件)
string daystr = "";
if (DateTime.Now.Day < 10)
{
daystr = "0" + DateTime.Now.Day.ToString();
}
else
{
daystr = DateTime.Now.Day.ToString();
}
//文件夹名称按月份+天数命名
string datastr = DateTime.Now.Date.Year + monthstr + daystr;
MakeDir(datastr); uri = "ftp://" + ftpServerIP + "/" + datastr + "/" + fileInf.Name;
FtpWebRequest reqFTP; // 根据uri创建FtpWebRequest对象
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + datastr + "/" + fileInf.Name)); // ftp用户名和密码
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); // 默认为true,连接不会被关闭
// 在一个命令之后被执行
reqFTP.KeepAlive = false; // 指定执行什么命令
reqFTP.Method = WebRequestMethods.Ftp.UploadFile; // 指定数据传输类型
reqFTP.UseBinary = true; // 上传文件时通知服务器文件的大小
reqFTP.ContentLength = fileInf.Length; // 缓冲大小设置为2kb
int buffLength = 2048; byte[] buff = new byte[buffLength];
int contentLen; // 打开一个文件流 (System.IO.FileStream) 去读上传的文件
FileStream fs = fileInf.OpenRead();
try
{
// 把上传的文件写入流
Stream strm = reqFTP.GetRequestStream(); // 每次读文件流的2kb
contentLen = fs.Read(buff, 0, buffLength); // 流内容没有结束
while (contentLen != 0)
{
// 把内容从file stream 写入 upload stream
strm.Write(buff, 0, contentLen); contentLen = fs.Read(buff, 0, buffLength);
} // 关闭两个流
strm.Close();
fs.Close(); return true;
}
catch (Exception ex)
{
// MessageBox.Show(ex.Message, "Upload Error");
HttpContext.Current.Response.Write("Upload Error:" + ex.Message);
} return false;
}
/// <summary>
/// 创建文件夹I
/// </summary>
/// <param name="dirName"></param>I
private static void MakeDir(string dirName)
{
FtpWebRequest reqFTP;
try
{
// dirName = name of the directory to create. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + @"/" + dirName));
reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
ftpStream.Close();
response.Close();
}
catch (Exception ex)
{ }
}
}
<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
</configuration>
http://www.open-open.com/ajax/Upload.htm
路径在\Windows\System32\inetsrv\config\schema下
http://51.dc.ftn.qq.com/ftn_handler/2158f79951d2640bc7d9101341f5a01898655cf2293b6a5067b2d61f382f17b02ff9835ade64058d020da6d8d6c97aa8e07734f298c5b666554d069cd8af46d2/Desktop.rar?k=26383064bb5fcd9921c8c66442640049020e540705010b034b09020657490657025b1d055757034b560f54015d550507515a0454646f3222034b5b100b141c14074a3059&fr=00&&txf_fid=3cae419f580d7cae89ea29c6eac736804686cf32提取码f80ddd2f前提先按照我前面所说修改IIS_schema
<system.web>
<httpRuntime
maxRequestLength="102400" //指定输入流缓冲阈值限制(单位为KB)
executionTimeout="3600" //允许执行请求的最大秒数, 只有当调试属性compilation= False时,此超时属性才适用
appRequestQueueLimit="1000"/> //指定应用程序排队的请求的最大数目。当自由线程不够时,将对请求进行排队。当排队队列超出了设定值时,将显示“503 - 服务器太忙”错误信息拒绝传入的请求。
<compilation debug="true" defaultLanguage="c#">
</system.web>
希望可以帮到楼主
<td style="height: 25px">
<asp:FileUpload ID="FileUpload1" runat="server" />(资料格式:rar,doc)
<asp:Button ID="BtnUploaf" runat="server" Text="上传" onclick="BtnUploaf_Click" />
<asp:Label ID="labFileName" runat="server" Visible="false" Text=""></asp:Label>
</td>======================= 资料上传 =============================
protected void BtnUploaf_Click(object sender, EventArgs e)
{
if (FileUpload1.PostedFile != null)
{
HttpPostedFile hpf = this.FileUpload1.PostedFile;
string FileSize = Convert.ToString(Convert.ToInt32(hpf.ContentLength.ToString()) / 1024);// +"KB";
//取得文件名(不含路径) char[] de = { '\\' };
string[] AFilename = hpf.FileName.Split(de);
string strFilename = AFilename[AFilename.Length - 1];
string flag = strFilename.Substring(strFilename.LastIndexOf('.') + 1); ViewState["FileFlag"] = flag;//文件的后缀名
ViewState["FileSize"] = FileSize; //文件的大小 if (strFilename.Substring(strFilename.LastIndexOf('.') + 1) == "rar" || strFilename.Substring(strFilename.LastIndexOf('.') + 1) == "doc"
|| strFilename.Substring(strFilename.LastIndexOf('.') + 1) == "RAR" || strFilename.Substring(strFilename.LastIndexOf('.') + 1) == "DOC")
{
hpf.SaveAs(Server.MapPath("/UploadBBSFile/" + strFilename));//上传至服务器 string dateStr = string.Format(DateTime.Now.ToString("yyyy") + @"\" + DateTime.Now.ToString("MM") + @"\" + DateTime.Now.ToString("dd") + @"\");
}
Session["FileName"] = strFilename; //资料名(原名)
this.labFileName.Text = strFilename;
ClientScript.RegisterStartupScript(this.GetType(), null, "<script>alert(\"资料上传成功!\");</script>");
return;
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), null, "<script>alert(\"资料格式不正确!\");</script>");
return;
}
}
}
好像web.confing也要配置对吧
把相关的配置也放出来,好不
WebbUpload.zip
这个是某高人做的例子,完整的,我就是根据他的解决问题了,上传2G没啥问题 大文件上传是有点复杂,楼主必须要花些时间来消化
UploadDemo.rar
AspnetUpload_23.zip
希望对楼主有所帮助
我给你的两个都不用web.config
忘了js了哈哈
http://31.dc.ftn.qq.com/ftn_handler/bb743a1b1adc4013aa24b7cbbe3b5dac535136ffe734750d0c20adf53c2f5b17157d265bf851d9adcffb962afb4d96c9619114010a19c0cf12dd049ffb01f810/swfupload.rar?k=706232365113c99e7592c4361f66044e045107525c0001501f0153555a4b025201551f0e0855544c020604550a05060706530450396b361245044746550957051c105344395b&fr=00&&txf_fid=bb0d609007ca74a1859a7b900df9dc3d94ac10e9使用QQ旋风下载(提取码 2b269f6a)
怎办啊??
各位大牛。。
我的缺省2003,只能上传200K以内的文件
但是,delphi写的文件接收isapi似乎没有受这个限制,接收的post数据可以大很多
我们2G大附件都这样传的。但是有插件。其实原理是一样的。
<httpRuntime executionTimeout="1200" maxRequestLength="409600" requestLengthDiskThreshold="80" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="5000" enableKernelOutputCache="true" enableVersionHeader="true" requireRootedSaveAsPath="true" enable="true" shutdownTimeout="90" delayNotificationTimeout="5" waitChangeNotification="0" maxWaitChangeNotification="0" enableHeaderChecking="true" sendCacheControlHeader="true" apartmentThreading="false"/>
</system.web>
一定要写在system.web之间,先搜索system.web的开始位置,然后把
<httpRuntime executionTimeout="1200" maxRequestLength="409600" requestLengthDiskThreshold="80" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="5000" enableKernelOutputCache="true" enableVersionHeader="true" requireRootedSaveAsPath="true" enable="true" shutdownTimeout="90" delayNotificationTimeout="5" waitChangeNotification="0" maxWaitChangeNotification="0" enableHeaderChecking="true" sendCacheControlHeader="true" apartmentThreading="false"/>复制进去就行了。
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
粘贴文件,简化选择文件操作:文件MD5值计算进度:文件MD5值计算完毕服务器根据MD5检测是否存在相同文件续传文件从服务器加载文件列表文件上传中文件上传完毕上传文件夹与Discuz!X2整合-后台安装断点续传控件与Discuz!X2整合-后台启用断点续传控件与Discuz!X2整合-后台断点续传控件启用成功与Discuz!X2整合-前台发帖页面与Discuz!X2整合-上传
页面调用示例代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTTP断点续传控件与MySQL数据库演示页面(UTF-8)</title>
<link href="HttpUploader/HttpUploader.css" type="text/css" rel="Stylesheet"/>
<script type="text/javascript" charset="utf-8" src="HttpUploader/FileLister.js"></script>
<script type="text/javascript" charset="utf-8" src="HttpUploader/HttpUploader.js"></script>
<script type="text/javascript" charset="utf-8" src="HttpUploader/combinbox.js"></script>
<script type="text/javascript" src="HttpUploader/jquery-1.3.2.min.js"></script>
<script language="javascript" type="text/javascript">
var cbItemLast = null;
var cbMgr = new CombinBoxMgr(); $(document).ready(function()
{
cbMgr.LoadInControl("FilePanel");
cbMgr.Init();
});
</script>
</head>
<body>
<div id="FilePanel"></div>
</body>
</html>资源下载:
CAB安装包
开发文档
ASP.NET-ACCESS示例
ASP.NET-SQL2005示例
JSP-ACCESS-GB2312示例
JSP-ACCESS-UTF8示例
JSP-SqlServer2005-UTF8示例
JSP-MySQL-UTF8示例
PHP-MySQL-UTF8示例