收藏前端实践题目

el-upload上传文件并上传到服务端

2022-01-10  本文已影响0人  autumn_3d55

1. 使用element-ui 的 el-upload 进行上传

<el-upload
              action=" "
              :show-file-list="false"
              :http-request="uploadFiles"
            >
              <div class="upload">
                <img
                  class="smallImg"
                  src="@/assets/images/whiteCap/icon_gaitouxian.png"
                />
                <div>修改头像</div>
              </div>
</el-upload>
async uploadFiles(param) {
      const res = await uploadFiles({ upload: param.file });
      console.log(res);
      if(res.status == "200" && res.data.retStatus == "000") {
        this.userInfo.headPortrait = res.data.retBody.attach;
      }
      // console.log(param.file);
    },
//文件上传接口:
export const uploadFiles = (data) => {
  return service({
    url: '/API/nsps/common/uploadFiles',
    method: 'post',
    data,
    contentType: "multipart/form-data",
  })
}
//请求拦截
service.interceptors.request.use((config) => {
    //统一处理表单格式
    if (config.contentType === "multipart/form-data") {
        //formData 表示表单数据的键值对 key/value 的构造方式
        const formData = new FormData();
        //这里遍历一下 因为有可能除了upload 还有其他参数的嘛
        for (let key in config.data) {
            //再一个个append进去
            formData.append(key, config.data[key]);
        }
        //重新赋值给config.data -------return出去
        config.data = formData;
        //这里设置multipart/form-data 表单传数据需要的contentType
        config.headers["Content-Type"] = config.contentType;
    }
    config.responseType && (config.responseType = "blob");
    return config;
})
上一篇 下一篇

猜你喜欢

热点阅读