zoukankan      html  css  js  c++  java
  • vant上传文件到后端

    最近在做手机版页面,采用的vant框架,这个上传控件和以前用iview、element有点不一样,iview、element都是直接提供后端接口文件会自动发送到后端,vant需要自己负责发送文件到后端,对于我这种面向百度编程人员还是有点难度。特意记一下,能帮到其他面向百度编程人员


    代码

    很简单,基本是使用文件构建FormData参数,如下:

    html代码

    <van-uploader
    :after-read="afterRead"
    :before-delete="beforeDelete"
    v-model="fileList"
    />
    

    ts代码

      fileList=[];
      /**文件上传 */
      afterRead(file) {
        // 此时可以自行将文件上传至服务器
        // console.log(file);
        let that = this;
        let id = 1;
        if (!/image/[a-zA-z]+/.test(file.file.type)) {
          this.$toast("请上传图片");
          return false;
        }
    
        let params = new FormData();
        params.append("file", file.file);
        params.append("ID", id);
        let config = {
          headers: {
            //添加请求头
            "Content-Type": "multipart/form-data"
          }
        };
        return new Promise((resolve, reject) => {
            //我的后端还是asp的
            //需要其他后端的可以看我以前的博文去复制
          Ajax.post("/***/FileUpload.ashx", params, config)
            .then(res => {
              if (res.status === 200) {
                //可以直接再file上附加属性,这样再删除的时候就可以作为标识从服务器删除数据
                file.path = res.data[0].Path;
                //URL是一个后端地址(前后端不在一个地址)常量
                file.url = URL + res.data[0].Path;
                console.log(that.fileList);
                resolve();
              } else reject();
            })
            .catch(() => {
              reject();
            });
        });
      }
      beforeDelete(file) {
        console.log(file);
        return new Promise((resolve, reject) => {
            //我的后端删除文件直接使用文件地址,你们的根据自己的修改
          Ajax.post(
            "/***/DeleteFile.ashx?path=" +
              escape(file.path) +
              "&ts=" +
              new Date().getTime()
          )
            .then(res => {
              if (res.status === 200) resolve();
              else reject();
            })
            .catch(() => {
              reject();
            });
        });
      }
    

    这里没有写从后端获取文件列表,你需要自己获取,文件列表只需要包含url或者content(文件的base64编码)两个属性就可以正常绑定列表,上传的时候通常是content,从服务器返回的我用的url,主要是读取文件再转换base64我不会,还要再百度一次,太麻烦了。


  • 相关阅读:
    021.day21 反射 Class类 反射常用操作
    020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步
    019.day19 缓冲流 对象流 标准输入输出流
    018.day18 map集合如何实现排序 File类 IO流 字节流 字符流 编码
    017.day17 Map接口 克隆 treeSet集合排重缺陷
    016.day16 HashSet TreeSet 比较器Comparable Comparator
    015.day15
    014.day14
    013.day13
    线程
  • 原文地址:https://www.cnblogs.com/missile/p/12704145.html
Copyright © 2011-2022 走看看