zoukankan      html  css  js  c++  java
  • vue+springboot+element+vue-resource实现文件上传

    vue+springboot+element+vue-resource实现文件上传

    vue页面设置

                <el-upload
                  class="upload-demo"
                  action=""
                  :before-upload="beforeUpload"  //上传前操作
                  :before-remove="beforeRemove"  //移除钱操作
                  :multiple="false"   //禁止多选
                  :http-request="myUpload" //文件上传,重写文件上传方法,action的路径不会起作用
                  accept=".jar"   //限制文件选择类型
                  :drag="false"
                  :data="param"  //参数
                  :file-list="fileList">//文件显示列表
                  <el-button size="small" type="primary">点击上传</el-button>
                  <div slot="tip" class="el-upload__tip">只能上传jar文件,且不超过500kb</div><!-- :headers="head"-->
                </el-upload><!--:on-preview="handlePreview"-->
    
    
          /*文件上传前,判断文件名是否存在,等其他处理*/
          beforeUpload(file){
            console.log("文件名",file.name,this.fileList)
            for (let i = 0; i <this.fileList.length ; i++) {
              if (this.fileList[i].name==file.name) {
                this.$message.info("文件已存在");
                return false;
              }
            }
            this.file=file;
    
            return true;
          },
    
            /*文件移除前,提示是否删除*/
          beforeRemove(file,fileList){//delJar
            this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              this.$http.get('/aaaa/task/del?taskId='+this.taskId+'&name='+file.name).then(function(res) {
               ......
              });
            }).catch(() => {
              this.getJarList();
              return false;
            });
          },
    
          /*文件上传,重写文件上传方法,action的路径不会起作用*/
          myUpload(file){
            let fd = new FormData();
            fd.append('file',this.file);//传文件
            fd.append('taskId',this.taskId);//传其他参数
            // fd.append('filename',file.name);//传其他参数
            this.$http.post('/aaaa/task/add',fd).then(function(res) {
              ....
            });
    
          },
    
    fileList一个对象的内容
    name:"xxxx.jar"
    status:"success"
    uid:123456456
    
    参数
    this.param={
        taskId:this.taskId
    }
    

    springboot设置

    1.请求的注解:produces = "multipart/form-data;charset=utf-8", method = RequestMethod.POS

        @RequestMapping(value = "/add", produces = "multipart/form-data;charset=utf-8", method = RequestMethod.POST)
        public String addJar(int taskId, HttpServletRequest request) throws IOException, ServletException {
            ....
            //获取文件
            Part part = request.getPart("file");// input的name值
            String dis = part.getHeader("Content-Disposition");
            // 获取文件名--sdsf.jar
            String fna = dis.substring(dis.indexOf("filename=") + 10, dis.length() - 1);
            String fname = fna.substring(fna.lastIndexOf("\") + 1, fna.length());// 有的浏览器获取的是路径+文件名
            // 若是文件名为空,说明此时没有选择文件,返回,文件上传失败,选择文件
            if (fname.length() < 1) {
              //此时没有选择文件
            }
           ....
        }
    
  • 相关阅读:
    C# 本质论 第三章 操作符和控制流
    LeetCode Online Judge 1. Two Sum
    C# 本质论 第二章 数据类型
    C# 本质论 第一章 C#概述
    TMDS代码
    `define `ifdef `elseif的巧妙使用
    加法器(行波与超前、全加与半加)
    DCI技术
    **标识符
    电容放置问题
  • 原文地址:https://www.cnblogs.com/ziyue7575/p/13704151.html
Copyright © 2011-2022 走看看