iview Upload组件多个文件上传的示例代码


Posted in Javascript onSeptember 30, 2018

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

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

1.引用组件

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

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

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

3.上传方法

 

//创建 formData 对象
          let formData = new FormData();
          //向 formData 对象中添加文件--这是其他参数
          formData.append('jsid', _jsid);

          //多个文件上传----------重点----需要吧已经存储到本地的文件加入 formData所以这里用for循环

          for(var i=0; i< that.file.length; i++){ 
           formData.append("uploadFile",that.file[i]);  // 文件对象  
          }

HTML代码如下:

<FormItem label="应标资料" v-show="islook">
          <template>
            <Upload
              multiple
              ref="upload"
              type="drag"
              :format="['docx','doc','txt', 'pdf']"
              :max-size="5000"
              :before-upload="handleUpload"
              :action="http">
              <div style="padding: 20px 0">
                <Icon type="ios-cloud-upload" size="52" style="color: #3399ff"></Icon>
                <p>点击或者拖拽到此次上传文件</p>
              </div>
            </Upload>
            <div>
              <ul class="file-list" v-for="(list,index) in file" :key="index">
                <li>文件名: <span style="font-size:15px;">{{ list.name }}</span> <Icon type="ios-close" size="20" style="float:right;" @click="delFileList(index)"></Icon></li>
              </ul>
            </div>
          </template>
        </FormItem>


        <FormItem v-show="islookshenghe">
          <h3>已经提交数据-正在等待审核</h3>
          <Button type="primary" @click="gobackfanhui">返回</Button>
        </FormItem>

        <FormItem v-show="islook">
          <Button type="primary" :loading="loading2" icon="ios-power" @click="upload">
            <span v-if="!loading2">接受并提交应标信息</span>
            <span v-else>正在上传文件中...</span>
          </Button>      

          <p style="color:red;font-size:15px;" v-show="isfiletihsi">请上传文件</p>
        </FormItem>

JS代码

delFileList(index){
        let that = this;
        that.file.splice(index, 1);
        
        console.log(that.file);
      }
handleUpload (file) {
        let that = this;
        if(that.file.length >= 5){
          this.$Message.info("最多只能上传5个文件");
        }else{
          that.file.push(file);
        }
        return false;
      }

axios提交方法代码:

upload(){
        let that = this;
        let _jsid = that.$route.query.id;
        if(that.file.length > 0){
          that.loading2 = true;
          //创建 formData 对象
          let formData = new FormData();
          //向 formData 对象中添加文件
          formData.append('jsid', _jsid);

          //多个文件上传
          for(var i=0; i< that.file.length; i++){ 
           formData.append("uploadFile",that.file[i]);  // 文件对象  
          } 

          let config = {
           headers: {
            'Content-Type': 'multipart/form-data'
           }
          }

          axios.post(that.http + "/shweb/gys/gysmsge/gysuploads.action", formData, {
                timeout: 10000,
                headers: {
                  'Content-Type': 'multipart/form-data'
                }
              }).then(function (rdata) {
                that.loading2 = false;
                if(rdata.data == "0"){
                  that.islook = false;
                  that.islookshenghe = true;
                }
                console.log(rdata);
              }).catch(function (error) {
                that.loading2 = false;
               that.$Message.error('服务器错误' + error);
              });
        }else{
          that.$Message.error("请至少上传一个文件");
        }
      }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
May 06 Javascript
10个基于Jquery的幻灯片插件教程
Oct 29 Javascript
YUI模块开发原理详解
Nov 18 Javascript
获取鼠标在div中的相对位置的实现代码
Dec 30 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
Nov 29 Javascript
JavaScript 栈的详解及实例代码
Jan 22 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
Mar 09 Javascript
Vue.js弹出模态框组件开发的示例代码
Jul 26 Javascript
Vuex 使用 v-model 配合 state的方法
Nov 13 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
Jan 23 Javascript
JavaScript闭包相关知识解析
Oct 19 Javascript
VUE 配置vue-devtools调试工具及安装方法
Sep 30 #Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
Sep 30 #Javascript
jQuery实现点击图标div循环放大缩小功能
Sep 30 #jQuery
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 #Javascript
基于VUE实现的九宫格抽奖功能
Sep 30 #Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 #Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
Sep 30 #Javascript
You might like
浅谈电磁辐射对健康的影响
2021/03/01 无线电
PHP中数组的三种排序方法分享
2012/05/07 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
Vue.js组件高级特性实例详解
2018/12/24 Javascript
js实现时间日期校验
2020/05/26 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
Python描述器descriptor详解
2015/02/03 Python
python中sleep函数用法实例分析
2015/04/29 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
Python多图片合并PDF的方法
2019/01/03 Python
python3 深浅copy对比详解
2019/08/12 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
python 如何上传包到pypi
2020/12/24 Python
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
最新大学生自我评价
2013/09/24 职场文书
趣味游戏活动方案
2014/02/07 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL