php 判断 上传文件大小,JavaScript_js 判断上传文件大小及格式代码,我们在做文件上传时,为了实 - phpStudy...

js 判断上传文件大小及格式代码

我们在做文件上传时,为了实现异步上传的效果,一般会选择采用iframe的形式来进行文件的上传,但我们不能像ajax那样对服务端返回的数据进行处理,从而来进行文件大小以及文件样式的判断,所以我们一般也会想到使用js对上传的文件大小以及格式进行初步的判断,在服务端再进行一次判断(防止浏览器拒绝执行脚本文件)。

以下提供一种方法用js判断文件大小。

var url = window.location.href, type = url.substr(url.lastIndexOf('/')+1);

// console.log(type);

var allowType = {

".bmp":1, ".png":1, ".jpeg":1, ".jpg":1, ".gif":1,

".mp3":2, ".wma":2, ".wav":2, ".amr":2,

".rm":3, ".rmvb":3, ".wmv":3, ".avi":3, ".mpg":3, ".mpeg":3, ".mp4":3

};

var allowSize = {1:2097152, 2:5242880, 3:20971520};

var errMsg = {

"0" : '图片格式不正确
'

+ '音频格式不正确
'

+ '视频格式不正确
',

"1" : ‘图片格式不正确',

"2" : '音频格式不正确',

"3" : '视频格式不正确'

};

var errSizeMsg = {

'1':'图片文件小于2M',

'2':'音频文件小于5M',

'3':'视频文件小于20M',

}

function checkFileType(filename, type){

var ext = filename.substr(filename.lastIndexOf(".")).toLowerCase(),

res = allowType[ext];

if (type == 0) {

return !!res;

} else {

return type == res;

}

}

function checkFileSize(target, size){

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 fsize = fileSize / 1024*1024;

if(parseInt(fsize) >= parseInt(size)){

return false;

}else{

return true;

}

}

function upload(obj){

var filename = jQuery.trim(jQuery('#uploadFile').val());

if (!filename || filename == ""){ // 提交前的再次检测

alert('选择需要上传的文件');

return false;

}

if (!checkFileType(filename, type)){

alert('文件格式不正确');

return false;

}

var ext = filename.substr(filename.lastIndexOf(".")).toLowerCase();

var res = allowType[ext];

if(!checkFileSize(obj,allowSize[res])){

alert(errSizeMsg[res]);

return false;

}

//其他处理

}

//uploadFile为上传控件的id,obj为上传控件的本身(this)相关阅读:

PHP中使用glob函数实现一句话删除某个目录下的所有文件

JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)

ASP.NET存储过程实现分页效果(三层架构)

WordPress中的shortcode短代码功能使用详解

使用jQuery判断浏览器滚动条位置的方法

javascript制作2048游戏

Ubuntu修改命令提示符PS1教程(非常详细)

C++进程共享数据封装成类实例

javascript 面向对象封装与继承

Java多线程的实现方式比较(两种方式比较)

Win10过了30天以后该怎么怎么无损降级回滚?

使用vertical-align实现input和img对齐

jquery实现下拉框功能效果【实例代码】

java制作android 日历代码分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值