JS前端限制上传文件大小的方法

xufangfanglemon 2011-07-22 06:40:30
用javascript限制文件上传大小,但不能用
var fso = new ActiveXObject('Scripting.FileSystemObject');
var file = fso.GetFile(fileName);
此类控件,这些对客户端IE安全级别有限制,问下有没有其他办法?谢谢!!
...全文
2029 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
heybabys 2011-07-27
  • 打赏
  • 举报
回复
ActiveX可以 不过要数字签名 不然要关掉IE上面的一些设置 这显然不现实
lionfox 2011-07-26
  • 打赏
  • 举报
回复
开发签名插件吧
danier_sky 2011-07-26
  • 打赏
  • 举报
回复

var imgSize = new Image();
imgSize.dynsrc = file;
//alert(imgSize.fileSize/1024);
wdbjsh 2011-07-26
  • 打赏
  • 举报
回复
用ajax跟后台结合的话,相当于上传两次,不合适。

所以先在通常采用的最好的方式是用flash来处理
zell419 2011-07-26
  • 打赏
  • 举报
回复
建议ajax结合后台做 。
xufangfanglemon 2011-07-26
  • 打赏
  • 举报
回复
直接这样判断,不可以么,用浏览器打开,为什么弹不出选择文件窗口?
<html> 
<head> 
  <title>Uploadify</title> 
  <link href="js/uploadify-v2.1.4/uploadify.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="js/uploadify-v2.1.4/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/uploadify-v2.1.4/jquery.uploadify.v2.1.4.js"></script>
<script type="text/javascript" src="js/uploadify-v2.1.4/jquery.uploadify.v2.1.4.min.js"></script>
<script type="text/javascript" src="js/uploadify-v2.1.4/swfobject.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#upload_file").uploadify({
'uploader' : 'js/uploadify-v2.1.4/uploadify.swf',
'script' : '',
'cancelImg' : '',
'folder' : '',
'removeCompleted' : true,
'onSelect':function(e,q,obj){

if(obj.size>20480)
{
alert("文件大小不可超过20KB!\n请处理好后再上传!");
return false;
}
else
{
return true;
}
},
'onError':function(e,q,fobj,eobj){
alert(eobj.info);
}
});
});
</script>
</head> 
<body> 
<input type="file" name="upload_file" id="upload_file">
</body> 
</html>
xufangfanglemon 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 theforever 的回复:]

看你们网站是什么样的网站了,如果是专门的媒体文件网站,那么开发专用的签名ACTIVEX插件是应该的。如果不是,还要求这么多干什么。
[/Quote]
当然是有需求了,要不研究这么辛苦干什么,万一哪个客户故意上传个超大文件,系统都得崩溃好久
  • 打赏
  • 举报
回复
看你们网站是什么样的网站了,如果是专门的媒体文件网站,那么开发专用的签名ACTIVEX插件是应该的。如果不是,还要求这么多干什么。
  • 打赏
  • 举报
回复
不是什么好需求。在上传浏览文件的时候,可以选择“详细列表”视图方式来查看文件的大小。放着这么容易的方式不用,钻牛角尖,没意思。
xufangfanglemon 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lsw645645645 的回复:]

要么用Active 要么结合flash..
记得ie8之前还可以的。现在IE浏览器越来越安全了,不能显示本地图片了,能显示本地图片就能判断大小了,火狐倒可以判断的。
[/Quote]
啊哦,是么,结合flash是怎么处理的呢
lsw645645645 2011-07-26
  • 打赏
  • 举报
回复
要么用Active 要么结合flash..
记得ie8之前还可以的。现在IE浏览器越来越安全了,不能显示本地图片了,能显示本地图片就能判断大小了,火狐倒可以判断的。
xufangfanglemon 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 danier_sky 的回复:]

JScript code

var imgSize = new Image();
imgSize.dynsrc = file;
//alert(imgSize.fileSize/1024);
[/Quote]
这样浏览器不兼容的
xufangfanglemon 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zell419 的回复:]

建议ajax结合后台做 。
[/Quote]
还是没解决
xufangfanglemon 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wdbjsh 的回复:]

用ajax跟后台结合的话,相当于上传两次,不合适。

所以先在通常采用的最好的方式是用flash来处理
[/Quote]

也是,本来想着这样处理的,结果问题还是出现了,那样实际上还是先把文件上传了,没达到目的,大文件反应还是很慢,用uploadify,研究ing,多谢大家给建议哈
vermilion3618 2011-07-26
  • 打赏
  • 举报
回复
现在我上传图片或文件之类的都是使用jQuery的一个插件:UpLoadify

$("#UpPartImg").uploadify({
'uploader':'../JS/UpLoadify/uploadify.swf',
'buttonImg':'../images/Admin/Browse.png',
'width':100,
'height':45,
'script':"../Handler/UpLoadFile.ashx",
'cancelImg':'../JS/UpLoadify/cancel.png',
'folder':'../images/RadioPart',
'auto':false,
'multi':false,
'queueID':'none',
'fileExt':'*.jpg;*.png;*.jpeg;*.gif;*.bmp', //这里控制浏览时只能选择的文件格式
'fileDesc':'请选择jpg,png,jpeg,gif,bmp图片', //这里显示格式的提示
'onSelect':function(e,q,obj){
//当用户选择一个文件后 需要判断文件大小不能超过512KB 且文件格式要为图片格式
//若不满足这两个要求 则返回false 不执行上传
if(obj.size>524288)//这里判断上传文件的大小以b为单位
{
alert("图片文件大小不可超过512KB!\n请处理好后再上传!");
return false; //这里返回false就不会在上传队列中添加
}
else
{
return true;
}
},
'onComplete':function(e,q,f,msg,d){
//上传成功后需要做的操作 其中的msg是由后台Response回来的数据
},
'onError':function(e,q,fobj,eobj){
alert(eobj.info);
}
});

使用方法和$.ajax({})有类似 非常好用 效果也很好
网上有许多的UpLoadify插件的使用方法 这个是用PHP写的 但C#也可以使用 我是学C#的

有兴趣可以加我QQ:124289844 加的时候 注明:CSDN 哈
sirzxj 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 danier_sky 的回复:]

JScript code

var imgSize = new Image();
imgSize.dynsrc = file;
//alert(imgSize.fileSize/1024);
[/Quote]

这是html5吧
24K純帥 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zell419 的回复:]

建议ajax结合后台做 。
[/Quote]
恩,后台做
bolink5 2011-07-26
  • 打赏
  • 举报
回复
jquery 就可以做到的
挨踢直男 2011-07-26
  • 打赏
  • 举报
回复
去服务器限制吧
s1120624175 2011-07-22
  • 打赏
  • 举报
回复
这个真没有

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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