原⽣JS实现前端本地⽂件上传本⽂实例为⼤家分享了JS实现前端本地⽂件上传的具体代码,供⼤家参考,具体内容如下
通过input type = file来选择本地⽂件
<div>
<form>
<input type="file" id="file-input" name="fileContent">
</form>
</div>
var fileInput = document.querySelector('#file-input');
console.log('⽂件名:',this.value)
var formData = new FormData(this.form);
console.log(formData)
}
//打印出的结果是⽂件名: C:\fakepath\css.jpg然后在是⼀个空对象
使⽤formData⽆法得到⽂件的内容,那么就使⽤FileReader来读取整个⽂件的内容
var fileInput = document.querySelector('#file-input');
var filereader = new FileReader();
var fileType = this.files[0].type;
if(/^image\[jpeg|png|gif]/.test(fileType)){
console.sult);
}
}
console.log(this.files[0]);
}
console.dir(fileInput);
从打印结果来看,能清楚的知道上传的⽂件信息是在input type = ‘file'dom对象中的files[0]中。adAsDataURL是将flies[0]⾥的信息转换成base64⽅式读取。
filereader的读取为以下格式:
readAsDataURL(this.files[0]) base64位读取
readAsBinaryString(this.files[0])以⼆进制⽅式读取读取结果是UTF-8形式(被废弃)readAsArrayBuffer(this.flies[0]) 以⼆进制原始⽅法读取,读取结果可转换成整数的数组var files = docu
//files是⽂件选择框选择的⽂件对象数组
if(files.length == 0) return;
var form = new FormData(),
url = '.......', //服务器上传地址
inputtypefile不上传文件file = files[0];
form.append('file', file);
var xhr = new XMLHttpRequest();
xhr.open("post", url, true);
//上传进度事件
xhr.upload.addEventListener("progress", function(result) {
if (result.lengthComputable) {
//上传进度
var percent = (result.loaded / al * 100).toFixed(2);
}
}, false);
xhr.addEventListener("readystatechange", function() {
var result = xhr;
if (result.status != 200) { //error
console.log('上传失败', result.status, result.statusText, sponse);
}
else if (adyState == 4) { //finished
console.log('上传成功', result);
}
});
xhr.send(form); //开始上传
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论