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


  • 相关阅读:
    在Visual Studio中使用正则表达式匹配换行和批量替换
    Microsoft Visual Studio Ultimate 2013 Update 2 RC 英文版--离线完整安装ISO+简体中文语言包
    TFS 2012 在IE11和Chrome (Windows 8.1) 显示英文的解决方案
    Windows 8 应用商店无法连接到网络的终极完美解决方案
    Visual Studio 2012 Update 4 RC 启动调试失败解决方案
    2013最新版Subversion 1.7.10 for Windows x86 + Apache 2.4.4 x64 安装配置教程+错误解决方案
    PKCS#1
    密钥协商机制
    base64的编码
    认证过程
  • 原文地址:https://www.cnblogs.com/missile/p/12704145.html
Copyright © 2011-2022 走看看