时间:2021-05-25
一 、下载
1、代码
const fileDownloadClick = (obj) => { // 解决兼容 if( document.all ){ obj.click(); } else { let event = document.createEvent("MouseEvents"); event.initEvent('click', true, true); obj.dispatchEvent(event); }}const fileDownload = (res,obj) => { // 下载 let blob = new Blob([res]); let url = window.URL.createObjectURL(blob); let link = document.createElement('a'); link.style.display = 'none'; link.href = url; link.setAttribute('download', `${obj.userName || ' '}_${obj.weeklyTime || dateFormatYMD(new Date())}_${obj.weeklyType || '.xlsx' }`); document.body.appendChild(link); // link.click(); fileDownloadClick(link); window.URL.revokeObjectURL(url);}2、请求时,需增加请求头
responseType: 'blob',3、使用
res: 后台返回的文件流( 类似于乱码的东西 )obj:下载文件名称//页面中调用this.fileDownload = (res,obj)二、上传 ( 基于vue )
1、页面使用
<input type="file" ref="upload" @change='handleUploadChange($event)' style="display:none;"> handleUploadFile(row){ // 通过某一事件触发 this.$refs['upload'].click(); }, async handleUploadChange(e){ // try{ let res = await this.CommonUpload(e); if(res.code == '200'){ // 获取其他code值,根据后台来定 this.handleProjectAddFile(res.data) }else{} } catch(err){} }2、方法封装 ( 只判断大小,也可通过accept判断要接收的类型 等其他类型 )
CommonUpload(e){ const files = e.target.files; let formData = new FormData(); if(files && files[0]) { const file = files[0]; if(file.size > 1024 * 1024 *3) { alert('文件大小不能超过3M'); return; } else { formData.append("multipartFile", file); } } this.uploadFile_(formData) // 为调用上传接口方法 }3、问题 当再次选择同一文件时,失效
解决: ( 上传后执行下面 )this.$refs['upload'].value = ''; // 解决 input file 第二次失效的问题原因:input file value值为新选中的值,所以下次再选同一文件,不会触发change事件以上就是本次介绍的全部相关知识点,如果有任何疑问和补充大家可以联系小编,感谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例分享了原生JS版和jQuery版实现文件上传功能的例子,供大家参考,具体内容如下HTML5AjaxUploaderdocument.g
本文实例讲述了原生js封装的ajax方法。分享给大家供大家参考,具体如下:众所周知,框架之间会有冲突,这是源生js就起到作用了,下面介绍一种源生js封装的aja
本文实例讲述了php+html5+ajax实现上传图片的方法。分享给大家供大家参考,具体如下:HTML5AjaxUploaderdocumen
实例如下://使用原生js封装ajax//兼容xhr对象functioncreateXHR(){if(typeofXMLHttpRequest!="undefi
本文实例讲述了AngularJS实现图片上传和预览功能的方法。分享给大家供大家参考,具体如下:html5原生方法先看一下html5原生方法上传和预览图片的实现: