如题,file进行图片上传,先做的是本地预览,然后提交的时候再上传,获得files报错,请问什么原因?
HTML:
<input class="upload-file" onchange="selectImg()" id="file" type="file" name="file" accept="image/*" multiple >
<input class="upImgBtn" onclick="doUpload()" type="button" value="上传"/>
js部分:
//选择图片之后的预览
function selectImg(e){
var file = $("#file").files;
console.log(file);//这里是undefined
for(i = 0; i< file.length; i ++) {//这里报错:Cannot read property 'length' of undefined
var reader = new FileReader();
var src = reader.readAsDataURL(file[i]);
reader.onload=function(e){
//多图预览
var imgStr = '<dl class="picBox"><dt>' +
'<img src="' + src +'"/><img onclick="delImgbox(this)" class="close" src="/depend/duilv2.0/images/icon_close.png"/></dt>'+
'<dd><input name="' + src+'" type="hidden" value="'+src+'"/>' +
'<input class="picTxt" maxlength="10" placeholder="图片介绍..."/></dd>';
$(".uploadBox").before(imgStr);
}
}
}
//上传
function doUpload(){
//这里是最后的上传
}
不要用jq,你应该用原生js获取,
jq本身获取不是通过files获取的,是通过.prop('files')来获取其自身的files属性,js是通过files获取的,这点和checkbox的checked很像,jq的话