FileUpload 上传大小问题

wisdom1 2015-10-13 08:47:08
FileUpload 上传30M 会直接报错,有什么办法可以指定上传大小呢 提示 不可以超过!

服务端需要怎么设置,如果现在30M以上的上传。

后台:

if (FileUpload1.PostedFile.FileName == "")
{
Cbll.Mytip(Page, "No File!");
return;
}
else
{
if (FileUpload1.PostedFile.ContentLength > 30*1024*1024)
{
Cbll.Mytip(Page, "File must be less than 30 m !");
return;
}
}



Web.config


<httpRuntime executionTimeout="3600" maxRequestLength="1048576" appRequestQueueLimit="1000" />

...全文
232 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wisdom1 2015-10-13
  • 打赏
  • 举报
回复


用上传控件,在本地报错,发布了不知道会不会


$("#uploader").pluploadQueue({
// General settings
runtimes: 'gears,flash,silverlight,browserplus,html5', // 这里是说用什么技术引擎
url: '../UploadFiles.ashx', // 服务端上传路径
max_file_size: '30mb', // 文件上传最大限制。
chunk_size: '1mb', // 上传分块每块的大小,这个值小于服务器最大上传限制的值即可。
unique_names: true, // 上传的文件名是否唯一
zdwlosunlht 2015-10-13
  • 打赏
  • 举报
回复
在网上搜一下,网上应该有类似的组件。
activexme 2015-10-13
  • 打赏
  • 举报
回复
引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢
想在JS中判断的话需要借助于控件了。JS,asp,asp.net,php,jsp这些语言都不行。

引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢


引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢


引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢


引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢


引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢


引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢


引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢


引用 8 楼 wisdom1 的回复:
非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢
ajianchina 2015-10-13
  • 打赏
  • 举报
回复
http://www.html580.com/12155 这个直接拿去用,我试过挺不错,不仅可以设置上传文件大小,还能限制上传文件的类型,暂停/恢复上传,如果是图像,还能限制图片尺寸等等.. 直接集成asp.net,基于Html5+CSS+JavaScript实现
wisdom1 2015-10-13
  • 打赏
  • 举报
回复

非常感谢 大家啊 ,暂不结贴。

如果JS能判断大小 就比较好了,我试下JS先。

我查看到:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>

我在根目录 放个404.htm页面 ,不跳过去,要怎么设置遇到404跳过去呢
正怒月神 版主 2015-10-13
  • 打赏
  • 举报
回复
如果你使用 asp.net的上传控件,
那么只能调整上传资源的大小限制(我忘记最大是多少了。好像比30M要大),具体你可以查查。
不过超过大小限制的最大值,一样还是会报错。这个事没办法解决的。
除非你使用 js的第三方上传插件。用asp.net解决不了。选中文件后,是直接报错的,连事件都不会进入。
宝_爸 2015-10-13
  • 打赏
  • 举报
回复
这个问题确实比较麻烦,在服务器端检测是得等上传后才可以进行。

html5有新的功能,可以用js检查:

<input type="file" id="myFile" />
Here is the Javascript code to alert the file size every time the user selects a different file.



//gets the element by its id
var myFile = document.getElementById('myFile');

//binds to onchange event of the input field
myFile.addEventListener('change', function() {
//this.files[0].size gets the size of your file.
alert(this.files[0].size);

});


来自
http://felipe.sabino.me/javascript/2012/01/30/javascipt-checking-the-file-size/
编程有钱人了 2015-10-13
  • 打赏
  • 举报
回复
引用 3 楼 wisdom1 的回复:
谢谢
如果上传50M的,直接报错不友好,怎么拦截错误,提示呢


引用 3 楼 wisdom1 的回复:
谢谢
如果上传50M的,直接报错不友好,怎么拦截错误,提示呢


引用 3 楼 wisdom1 的回复:
谢谢
如果上传50M的,直接报错不友好,怎么拦截错误,提示呢


引用 3 楼 wisdom1 的回复:
谢谢
如果上传50M的,直接报错不友好,怎么拦截错误,提示呢


如果你显示50MB ,你你配置文件里设置要大一点,留给判断的余地,比如设置成60MB

判断就是 if (FileUpload1.PostedFile.ContentLength > 50*1024*1024)

{

Cbll.Mytip(Page, "File must be less than 50 m !");

return;

}
wisdom1 2015-10-13
  • 打赏
  • 举报
回复
谢谢
如果上传50M的,直接报错不友好,怎么拦截错误,提示呢
wisdom1 2015-10-13
  • 打赏
  • 举报
回复



引用 1 楼 wangjun8868 的回复:
<httpRuntime executionTimeout="3600" maxRequestLength="1048576" appRequestQueueLimit="1000" />
maxRequestLength="1048576" 数字大一些

.NET 2.0和 .NET4.0 设置有点区别


引用 1 楼 wangjun8868 的回复:
<httpRuntime executionTimeout="3600" maxRequestLength="1048576" appRequestQueueLimit="1000" />
maxRequestLength="1048576" 数字大一些

.NET 2.0和 .NET4.0 设置有点区别


30M以内的 会提示后台那个限制提示,超过后直接报错,返回才提示超过现在提示。 还要设置什么吗
编程有钱人了 2015-10-13
  • 打赏
  • 举报
回复

<httpRuntime executionTimeout="3600" maxRequestLength="1048576" appRequestQueueLimit="1000" />
maxRequestLength="1048576" 数字大一些

.NET 2.0和 .NET4.0 设置有点区别
zha02ruts1yun 2015-10-13
  • 打赏
  • 举报
回复
引用 11 楼 wisdom1 的回复:
用上传控件,在本地报错,发布了不知道会不会


$("#uploader").pluploadQueue({
// General settings
runtimes: 'gears,flash,silverlight,browserplus,html5', // 这里是说用什么技术引擎
url: '../UploadFiles.ashx', // 服务端上传路径
max_file_size: '30mb', // 文件上传最大限制。
chunk_size: '1mb', // 上传分块每块的大小,这个值小于服务器最大上传限制的值即可。
unique_names: true, // 上传的文件名是否唯一
楼主试试这个控件:http://www.cnblogs.com/xproer/archive/2010/10/24/1859895.html
此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,上传前获取本地文件大小,适合各种简单WEB项目。
另外一个特点是支持自动上传指定的本地文件。



单文件上传演示


上传本地文件代码
使用步骤如下:
1.调用AddFile函数添加本地文件,注意路径需要使用双斜框(\\)
2.调用PostFirst函数开始上传文件。

<div id="divUpload"></div>
<script type="text/javascript" language="javascript">
var fileMgr = new HttpUploaderMgr();

window.onload = function()
{
fileMgr.LoadTo("divUpload"); //加载并初始化控件
//添加一个本地文件
fileMgr.AddFile("D:\\Soft\\QQ2010.exe");
fileMgr.PostFirst();

};
</script>


获取本地文件大小

服务器返回消息:<input id="txtFilePath" type="text" size="50" />
<div id="divUpload"></div>
<script type="text/javascript" language="javascript">
var fileMgr = new HttpUploaderSingleMgr();
fileMgr.Config["PostUrl"] = "http://localhost:8080/asp.net/upload.aspx";//指定文件上传地址,可以在这里设置文件服务器地址
fileMgr.LoadTo("divUpload");
function testFileSize()
{
var obj = new ActiveXObject(fileMgr.ActiveX["Partition"]);
alert(obj.FileSize("D:\\VS2012.SP4.iso"));
}

function testFileLength()
{
var obj = new ActiveXObject(fileMgr.ActiveX["Partition"]);
alert(obj.FileLength("D:\\VS2012.SP4.iso"));
}
</script>


获取MAC地址

<div id="divUpload"></div>
<script type="text/javascript" language="javascript">
var fileMgr = new HttpUploaderMgr();
fileMgr.Config["PostUrl"] = "http://localhost:4854/asp.net/upload.aspx";//设置文件上传地址

$(document).ready(function ()
{
fileMgr.LoadTo("divUpload");//加载并初始化控件
});

function getMacs()
{
var mac = fileMgr.Browser.GetMacs();
alert(mac[0]);
}
</script>


单文件整合代码:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>单文件上传示例</title>
<link href="js/up2.css" type="text/css" rel="Stylesheet"/>
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="js/up2-single.js" type="text/javascript" charset="utf-8"></script>
<script language="javascript" type="text/javascript">
var fileMgr = new HttpUploaderMgr();

$(document).ready(function ()
{
fileMgr.Load();

$("#btnSel").click(function ()
{
fileMgr.postAuto("upPnl"); //
});

$("#btnPostLoc").click(function ()
{
fileMgr.postLoc("D:\\Soft\\QQ2015.exe", "upPnl"); //
});
});
</script>
</head>
<body>
<p>此页面演示单个文件上传样式</p>
<div id="upPnl"></div>
<input id="btnSel" type="button" value="浏览" />
<input id="btnPostLoc" type="button" value="上传本地文件" />
</body>
</html>

示例下载:
cab安装包(x86)
cab安装包(x64)
xpi安装包
crx安装包
exe安装包
开发文档
ASP示例
ASP.NET示例
JSP示例
PHP示例

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧