关于js上传的一个例子

来源:互联网 发布:什么是大数据平台 编辑:程序博客网 时间:2024/05/19 02:27

作者:Yajie.           QQ:878182159      坐标:长沙

1,置空一个type为file的input.

当上传执行完毕后,肯定是要置空input内的文件的。网上有很多置空的方法,基本都是复制黏贴来的。比如:


file.outerHTML = file.outerHTML;


这个方法用了之后确实能清空input,但是input不在触发change事件。所以这个方法是不能使用的。

最简单的方法。


$(file).val("");


2.input内的文件获取。

input上传的文件都存在 file.files里面。这是一个obj类数组对象。有length属性,但不是数组。最后一个元素是一个函数。它会调用浏览器的native方法来监听files

内的元素是否改变。


if(file.files[file.files.length-1] instanceof Function){

console.log(file.files[file.files.length-1]);

}


运行结果返回changed;


3.input判断是否为多文件上传。

很简单。直接查看multiple属性是否为真。但是大部分的上传插件都是采用的穿件多个input来上传‘假’多文件上传。比如fileInput插件。


4.文件后缀的截取


var imgPath = $("#uploadFile>.fileCase").val();
var strExtension = imgPath.substr(imgPath.lastIndexOf('.') + 1);

var fileName= imgPath.substr(imgPath.lastIndexOf('\\') + 1);


5.ajax上传:


var form = new FormData();
var file=$("#uploadFile>.fileCase")[0].files[0];
if(file==null){
$("#back_err_case").modal("show");
$("#back_err_msg").text("并没有选择文件");
return;
}
    form.append("file",file); 
$.ajax({
type: "POST",
url: "url",
data: form,
cache: false,
dataType:"json",
processData: false,
               contentType: false,
success: function(data) {
...
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
...
}
});
}


另外其实大部分的上传插件都是ajax上传来的。比如fileInput.所以如果你要对下载的内容进行权限控制可以在源码中的ajxa内加一小段hearders.以下为fileInput内的源码。

settings = $.extend(true, {}, {
                xhr: function () {
                    var xhrobj = $.ajaxSettings.xhr();
                    return self._initXhr(xhrobj, previewId, self.getFileStack().length);
                },
                url: self.uploadUrl,
                type: 'POST',
                dataType: 'json',
                data: self.formdata,
                cache: false,
                processData: false,
                contentType: false,
                beforeSend: fnBefore,
                success: fnSuccess,
                complete: fnComplete,
                headers:{
"TOKEN":token
    },
                error: fnError
            }, self.ajaxSettings);
            self.ajaxRequests.push($.ajax(settings));


希望能对看到本文的人提供帮助。另外极度鄙视那些复制黏贴别人文章的人。





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 3d模型有红线框怎么办 电视页面加载时错误怎么办 投屏显示加载视频错误怎么办 word遇到问题需要关闭怎么办 画眼线看不出来怎么办 14岁眼皮很松怎么办啊 ps存不了psd格式怎么办 花草上有白色物怎么办 ps抠出来有白边头发怎么办 脸上结痂掉了有红印怎么办 海棠花瓣干枯怎么办茎变软 微信上的图片打不开怎么办 口红吊兰老掉叶子怎么办 翠叶竹芋叶子卷怎么办 牙有龋齿垫底以后酸怎么办 事业单位辞职请示30天不批怎么办 孕早期吃了油菜怎么办 实体店买到翻新苹果手机怎么办 太阳花叶子蔫了怎么办 刚摘下来的多肉怎么办 购车4s不给合同怎么办 橙光游戏2.0商城怎么办 飞羽花卷叶了怎么办 孔雀竹芋叶子发黄卷曲怎么办 孔雀竹芋叶子黄了卷了怎么办 飞羽竹芋叶尖黄怎么办 十七岁还是胸小怎么办 英雄联盟连接不上服务器怎么办 彩叶草叶子蔫了怎么办 家里种葱老是死怎么办 非洲菊生虫子了怎么办 多肉的花剪下来怎么办 结石痛怎么办怎么止疼 喝玫瑰花茶胃疼怎么办 卡地亚戒指掉色怎么办 苹果8plus掉电快怎么办 苹果8plus耗电快怎么办 卡地亚戒指划痕怎么办 苹果手机玫瑰金掉色怎么办 14k玫瑰金掉色怎么办 卡地亚手镯掉色怎么办