雁过请留痕...
代码改变世界

上传文件的相关操作

2016-01-29 15:38  xiashengwang  阅读(301)  评论(0编辑  收藏  举报

上传文件前,在本地客户端检查文件的大小,类型。

// 文件种类检查
//     fileURL: 文件路径
//     fileExtensions: 例:「".xls"、".xlsx"、".doc"」
function checkFileType(fileURL, fileExtensions) {
    var typeArray = fileExtensions.split('、');
    if (!typeArray) {
        return true;
    }
    var ext3 = fileURL.toLowerCase().substr(fileURL.length - 3, 3);
    var ext4 = fileURL.toLowerCase().substr(fileURL.length - 4, 4);
    for (i = 0; i < typeArray.length; i++) {
        var ext = typeArray[i].replace('.', '');
        if ((ext3 == ext || ext4 == ext)) {
            return true;
        }
    }
};

// 文件大小检查
//    obj_file: input[type='file'] 
//    maxsize(M):最大大小
function checkFileSize(obj_file, maxsize) {
    try {
        maxsize = maxsize * 1024 * 1024;

        var filesize = obj_file.files[0].size;
        if (filesize > maxsize) {
            return false;
        } else {
            return true;
        }
    } catch (e) {
        return true;
    }
};

文件上传Input

 <input type="file" onchange = "changeFileName(this);" />

选择文件的时候做检查 

function changeFileName(sender) {
    var file = $(sender).val();
    if (file) {
        //文件后缀检查     
        if (!checkFileType(file, UPLOAD_DOC_FILE_EXTENSION)) {
            alert(G_W0010_A);
            $(sender).val('');
            return;
        }
        //文件大小检查
        if (!checkFileSize($(sender)[0], UPLOAD_FILE_SIZE_MAX)) {
            alert(G_W0011_A);
            $(sender).val('');
            return;
        }
        // 确定按下
        var fileName = file.replace(/^.*[\\\/]/, '');
        $("a" + "." + $(sender).attr('referClass')).text(fileName).removeAttr("href");
    } else {
        //取消按下
        return;
    }
};