当前位置: 首页 > news >正文

重庆企业服务建站网站开发佛山网站建设技术托管

重庆企业服务建站网站开发,佛山网站建设技术托管,做违法网站程序员犯法吗,做网站平方根怎么表示背景&#xff1a;如图一所示&#xff0c;最下面有一个黄色上传文件按钮&#xff0c;为手动上传而且上传区域有上传文件和上传文件夹的区分 所以需要在点击了上传文件夹做特殊处理使得el-upload可以上传文件夹 一、template区域 <el-uploadclass"upload-file"dra…

背景:如图一所示,最下面有一个黄色上传文件按钮,为手动上传而且上传区域有上传文件和上传文件夹的区分

所以需要在点击了上传文件夹做特殊处理使得el-upload可以上传文件夹

一、template区域

                        <el-uploadclass="upload-file"dragmultipleref="uploadRef":directory="true"v-show="uploadTypeIndex != 2 && fileArray.length == 0 && !isUpload":file-list="fileArray":auto-upload="false":show-file-list="false":before-upload="handleBeforeUpload":http-request="handleUploadFile":on-change="handleFileChange"accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/pdf, text/plain, text/markdown"><div class="upload-node w-full h-full" @click="handlePreview"><app-svg-icon icon-name="filled-add" class="w-48 h-48 cursor-pointer upload-node-icon" /></div></el-upload>

二、逻辑区域 

01.在拖拽上传的区域绑定一个点击事件handlePreview,(注意不要直接绑定在el-upload区域,会被触发到两次)

const handlePreview = () => {let inputDom: any = nullnextTick(() => {if (document.querySelector('.el-upload__input') != null) {inputDom = document.querySelector('.el-upload__input')if (uploadTypeIndex.value == 1) {inputDom.webkitdirectory = true} else {inputDom.webkitdirectory = false}}})
}
//点击上传文件夹就将document.querySelector('.el-upload__input')获取到的webkitdirectory 设置为true,选择文件时浏览器就会只筛选文件夹
//点击上传文件就将document.querySelector('.el-upload__input')获取到的webkitdirectory 设置为false

02.此时在el-upload的上传文件方法下面就可以请求后端上传文件

 :http-request="handleUploadFile"

// 上传文件
const handleUploadFile = ({ file }) => {console.log(file, '---fie')//有几个文件就触发了几次uploadFileFunc(file)
}function uploadFileFunc(file: any) {const formData = new FormData()formData.append('field1', '111')formData.append('file', file)formData.append('field2', '222') //此次携带参数请求axios({url: 'yourUrl',method: 'POST',headers: {'Content-Type': 'application/x-www-form-urlencoded',},data: formData,}).then(res => {if (res != null && res.status == 200) {//成功后的逻辑}})
}

此时我发现我点击上传单个文件或者选取多个文件上传时是可以成功上传的,在handleUploadFile事件中打印的file长这样:webkitRelativePath:" "

上传文件夹时,打印出来的file长这样:webkitRelativePath: "新建文件夹/111111111111111111.txt"

后端直接返回提示 说找不到该文件,所以怀疑就是因为文件path的原因,所以直接将file的webkitRelativePath改为空字符串即可

但是由于file 对象的属性是只读的,所以无法直接修改 file.webkitRelativePath 的值。如果想在前端上传文件夹时去掉文件的路径信息,可以使用 File 构造函数创建一个新的文件对象,只保留文件本身,而不包含路径信息。

修改后的代码如下

// 上传文件
const handleUploadFile = ({ file }) => {console.log(file, '---fie')let fieClone = new File([file], file.name)//这里就可以文件夹中的每个文件都创建为一个新的 File 对象,并且只保留文件本身//有几个文件就触发了几次uploadFileFunc(fieClone)//传新的File对象
}function uploadFileFunc(file: any) {const formData = new FormData()formData.append('field1', '111')formData.append('file', file)formData.append('field2', '222') //此次携带参数请求axios({url: 'yourUrl',method: 'POST',headers: {'Content-Type': 'application/x-www-form-urlencoded',},data: formData,}).then(res => {if (res != null && res.status == 200) {//成功后的逻辑}})
}

http://www.wooajung.com/news/27754.html

相关文章:

  • wordpress网站被劫持重定向seo快速排名是什么
  • 做网站优化需要多少钱网站优化外包价格
  • 网站建设 销售提成阿里云万网域名查询
  • 东莞网站优化方案海南百度推广公司有哪些
  • 深圳 网站设计营销推广公司
  • 网站制作 需要什么网络技术百度搜索风云榜排行榜
  • 网站建站行业公司主页建设天津百度推广网络科技公司
  • 做纸巾定制的网站新闻早知道
  • 网站建设技术手段南京百度网站快速优化
  • 网站建设与管理课程心得体会中文网站排名
  • flash做网站通栏每日新闻快报
  • 昆明网站做定制网站开发
  • 拍卖网站制作微信公众号营销
  • 网站扫描怎么做百度搜索引擎的网址是多少
  • 沈阳商城网站建设seo教学网站
  • 源码网站大淘客cms外包
  • 新开传奇网站首区长沙推广公司
  • 福步外贸论坛app上海有实力的seo推广咨询
  • 男女做姿抽插视频网站sem是什么设备
  • 网站登录页面模板成功营销十大经典案例
  • 商城开发网站建设小程序生成平台系统
  • 英语网站都可以做哪些内容百度推广需要多少钱
  • 营销网站推荐网络搭建教程
  • vs如何做网站营销技巧和话术
  • 做会展网站的公司的工作流程深圳网
  • 响应式网站做客服弹窗app推广员怎么做
  • 企业注册登记宁波seo外包推广排名
  • 网站建设开发程序推广平台免费b2b网站大全
  • 自建b2b代表网站网站建设哪个公司好
  • 如何在网站上做404页面seo课程简介