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我不会,还要再百度一次,太麻烦了。


  • 相关阅读:
    lbs(查看附近的人),看看社交软件如何实现查看附近的人
    PHP框架中的日志系统
    PHP链式操作输出excel(csv)
    看看你的正则行不行——正则优化一般的json字符串
    PHP设计模式(三)
    PHP设计模式(二)
    PHP设计模式(一)
    PHP守护进程
    数据库的常用日志
    浅谈数据库事物
  • 原文地址:https://www.cnblogs.com/missile/p/12704145.html
Copyright © 2011-2022 走看看