使用  iview Upload 上传组件 手动上传 包括单个文件和多个文件

思路:创建一个数组 把需要上传的文件 push到这个数组里面

1.引用组件

2.手动上传,根据官方文档 设置:before-upload ="handleUpload"等于false 

(1).:before-upload 是 iview Upload 上传组件的一个属性 设置返回值为 false 可以阻止默认上传方式(自动上传模式)

(2).handleUpload 是方法  *备注:代码在最后面

3.上传方法     

  1. //创建 formData 对象
  2.  
  3. let formData = new FormData();
  4. //向 formData 对象中添加文件--这是其他参数
  5. formData.append('jsid', _jsid);
  6.  
  7. //多个文件上传----------重点----需要吧已经存储到本地的文件加入 formData所以这里用for循环
  8.  
  9. for(var i=0; i< that.file.length; i++){
  10. formData.append("uploadFile",that.file[i]); // 文件对象
  11. }

HTML代码如下:

  1. <FormItem label="应标资料" v-show="islook">
  2. <template>
  3. <Upload
  4. multiple
  5. ref="upload"
  6. type="drag"
  7. :format="['docx','doc','txt', 'pdf']"
  8. :max-size="5000"
  9. :before-upload="handleUpload"
  10. :action="http">
  11. <div style="padding: 20px 0">
  12. <Icon type="ios-cloud-upload" size="52" style="color: #3399ff"></Icon>
  13. <p>点击或者拖拽到此次上传文件</p>
  14. </div>
  15. </Upload>
  16. <div>
  17. <ul class="file-list" v-for="(list,index) in file" :key="index">
  18. <li>文件名: <span style="font-size:15px;">{{ list.name }}</span> <Icon type="ios-close" size="20" style="float:right;" @click="delFileList(index)"></Icon></li>
  19. </ul>
  20. </div>
  21. </template>
  22. </FormItem>
  23.  
  24. <FormItem v-show="islookshenghe">
  25. <h3>已经提交数据-正在等待审核</h3>
  26. <Button type="primary" @click="gobackfanhui">返回</Button>
  27. </FormItem>
  28.  
  29. <FormItem v-show="islook">
  30. <Button type="primary" :loading="loading2" icon="ios-power" @click="upload">
  31. <span v-if="!loading2">接受并提交应标信息</span>
  32. <span v-else>正在上传文件中...</span>
  33. </Button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  34.  
  35. <p style="color:red;font-size:15px;" v-show="isfiletihsi">请上传文件</p>
  36. </FormItem>

JS代码

  1. delFileList(index){
  2. let that = this;
  3. that.file.splice(index, 1);
  4.  
  5. console.log(that.file);
  6. }
  1. handleUpload (file) {
  2. let that = this;
  3. if(that.file.length >= 5){
  4. this.$Message.info("最多只能上传5个文件");
  5. }else{
  6. that.file.push(file);
  7. }
  8. return false;
  9. }
  1. axios提交方法代码:
  1. upload(){
  2. let that = this;
  3. let _jsid = that.$route.query.id;
  4. if(that.file.length > 0){
  5. that.loading2 = true;
  6. //创建 formData 对象
  7. let formData = new FormData();
  8. //向 formData 对象中添加文件
  9. formData.append('jsid', _jsid);
  10.  
  11. //多个文件上传
  12. for(var i=0; i< that.file.length; i++){
  13. formData.append("uploadFile",that.file[i]); // 文件对象
  14. }
  15.  
  16. let config = {
  17. headers: {
  18. 'Content-Type': 'multipart/form-data'
  19. }
  20. }
  21.  
  22. axios.post(that.http + "/shweb/gys/gysmsge/gysuploads.action", formData, {
  23. timeout: 10000,
  24. headers: {
  25. 'Content-Type': 'multipart/form-data'
  26. }
  27. }).then(function (rdata) {
  28. that.loading2 = false;
  29. if(rdata.data == "0"){
  30. that.islook = false;
  31. that.islookshenghe = true;
  32. }
  33. console.log(rdata);
  34. }).catch(function (error) {
  35. that.loading2 = false;
  36. that.$Message.error('服务器错误' + error);
  37. });
  38. }else{
  39. that.$Message.error("请至少上传一个文件");
  40. }
  41. }

iview Upload组件多个文件上传的更多相关文章

  1. Flash上传组件之SWFUpload文件上传

    一.什么是SWFUpload? SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而 ...

  2. common-fileupload组件实现java文件上传和下载

    简介:文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到 ...

  3. JS组件系列——Bootstrap文件上传组件:bootstrap fileinput

    前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签, ...

  4. 使用element UI el-upload组件实现视频文件上传及上传进度显示方法总结

    实现效果: 上传中: 上传完成: 代码: <el-form-item label="视频上传" prop="Video"> <!-- acti ...

  5. 用jQuery File Upload实现简单的文件上传

    FORM中的代码: {# file_path #} <div class="form-group"> <label class="control-lab ...

  6. Element ui 上传文件组件(单文件上传) 点击提交 没反应

    element ui 第一次上传文件后 上传其他文件再次点击不再次提交 需要使用 clearFiles 清空已上传文件列表 这时候在次点击 上传按钮 就会惊喜的发现 可以上传了使用方法 this.$r ...

  7. WEB文件上传之apache common upload使用(一)

    文件上传一个经常用到的功能,它有许多中实现的方案. 页面表单 + RFC1897规范 + http协议上传 页面控件(flash/html5/activeX/applet) + RFC1897规范 + ...

  8. Spring Boot + Vue 前后端分离,两种文件上传方式总结

    在Vue.js 中,如果网络请求使用 axios ,并且使用了 ElementUI 库,那么一般来说,文件上传有两种不同的实现方案: 通过 Ajax 实现文件上传 通过 ElementUI 里边的 U ...

  9. .JavaWeb文件上传和FileUpload组件使用

    .JavaWeb文件上传 1.自定义上传 文件上传时的表单设计要符合文件提交的方式: 1.提交方式:post 2.表单中有文件上传的表单项:<input type="file" ...

随机推荐

  1. Django 文件配置、pycharm及django连接数据库、表的增删改查 总结

    静态文件配置 1.你在浏览器中输入网址能够有响应的资源返回给你 是因为后端已经提前给你开设该资源的接口,也就意味着你所能 访问到的资源 都是人家事先定义好的 2.django如何给用户开设资源接口呢? ...

  2. NOIP2017提高A组模拟10.6】Biology

    题目 trie 暴力就是对于每个询问的T个字符串 第i个和第i+1个直接个从后暴力枚举每位是否相同, 但这个方法TLE 我们考虑是否可以用更快的方法来求出两个字符串的最长公共后缀. 我们把所有的字符串 ...

  3. 【MongoDB系列】简介、安装、基本操作命令

    文章内容概述: 1.MongoDB介绍 2.MongoDB安装(windows及Linux) 3.MongoDB基本操作命令 MongoDB介绍: MongoDB 是一个基于分布式文件存储的数据库.由 ...

  4. plsql 连不上64位oracle客户端

    1)安装Oracle 11g 64位 2)安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0) 下载instantclient-basic-wi ...

  5. 随机验证码生成和join 字符串

    函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符) ...

  6. node之events 模块,并通过实例化 EventEmitter 类来绑定和监听事件

    例子来源:http://www.runoob.com/nodejs/nodejs-event-loop.html http://www.runoob.com/nodejs/nodejs-event.h ...

  7. codevs 2602 最短路径问题x

                         题目描述 Description 平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间.其中的一些点之间有连线.若有连线,则表示 ...

  8. R & and &&

    https://blog.csdn.net/jining11/article/details/84933110 和C中的&不用,不要用&&,一般情况都是用&表示并且

  9. Vue成员与指令介绍

    一.Vue介绍 1.什么是vue 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围, 可以独立完成前后端分离式web项目的渐进式JavaScript框架 2.为什么要学vue 三大主流框架之 ...

  10. Oracle11g RAC+DG搭建

    项目环境准备 3.1虚拟机配置 版本选择 注意Linux操作系统.此次项目我选择的版本是Oracle Enterprise Linux 5.4 内存的设置 本人电脑物理内存8G,由于此次实验要开三台虚 ...