无刷新 上传文件

首选推荐一个别人做好的插件:uploadify
这个下载这个看看还有上传进度条。但是这个是基于 flash实现的。很多手机上面没有这个就不能用了。
我用的是 iframe实现的。把上传控件input=file单独放到一个页面。然后单独提交这一个iframe。从而实现无刷新。


在js中判断上传文件的大小
 function fileChange(target) {
            var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
            var fileSize = 0;
            if (isIE && !target.files) {
                var filePath = target.value;
                var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
                var file = fileSystem.GetFile(filePath);
                fileSize = file.Size;
            } else {
                fileSize = target.files[0].size;
            }
            var size = fileSize / 1024;
            if (size > 500) {
                alert("附件不能大于500k");
                parent.CloseTitle();
                return false;
            }
            return true;
        }


<input type="file" name="contractFileName"  style="width: 500px;" οnchange="fileChange(this);"/> 
这样可以在js就判断文件的大小。不用放到服务器判断。如果放到服务器判断要是网速很慢的话,需要等半天才有提示。


input=file限制后缀名。
可以在选择以后用js判断选择的后缀名是不是合法的,但是这样用户体验不太好。
最直接的办法就是在弹出选择框的时候直接过滤掉,
<input type="file" id="file1" accept="image/png,image/bmp,image/jpg,image/jpeg"  />
通过accept属性就可以。
这个有浏览器兼容问题,尤其是低版本的ie或者是火狐。加上总比没有好一点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值