上传图片或文档 二进制文档流方式上传

问题: 接口上传图片 需要将图片以二进制得格式 与其他字段一块传给后端

方案: 改变接口传递类型  application/x-www-form-urlencoded

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
let params = {
       thaliId: this.editData.thaliId,
       thaliPrice: this.editData.thaliPrice,
       salesInstructions: this.editData.salesInstructions,
       imgFile: this.titleFile, //图片二进制格式
     };
     if (!this.titleFile) {
       delete params.imgFile;
     }
     let data = this.stringify(params); //将参数转换成功 formdata 接收格式
     payConfig
       .updateOpThali(data, "application/x-www-form-urlencoded")
       .then((res) => {
         if (res.code != 0) {
           this.$message.error(res.errorMsg);
           this.loading = false;
           return;
         }
    });
 
// 将参数转换成功 formdata 接收格式
   stringify(data) {
     const formData = new FormData();
     for (const key in data) {
       // eslint-disable-next-line no-prototype-builtins
       if (data.hasOwnProperty(key)) {
         if (data[key]) {
           if (data[key].constructor === Array) {
             if (data[key][0]) {
               if (data[key][0].constructor === Object) {
                 formData.append(key, JSON.stringify(data[key]));
               } else {
                 data[key].forEach((item, index) => {
                   formData.append(key + `[${index}]`, item);
                 });
               }
             } else {
               formData.append(key + "[]", "");
             }
           } else if (data[key].constructor === Object) {
             formData.append(key, JSON.stringify(data[key]));
           } else {
             formData.append(key, data[key]);
           }
         } else {
           if (data[key] === 0) {
             formData.append(key, 0);
           } else if (data[key] === null) {
             formData.append(key, null);
           } else {
             formData.append(key, "");
           }
         }
       }
     }
     return formData;
   },

  

 

posted @   沁猿春  阅读(120)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-07-29 VUE 生产模式 去除console
2021-07-29 点击button按钮,实现复制效果
点击右上角即可分享
微信分享提示