FalseIO 2024-09-29 15:54 采纳率: 100%
浏览 2
已采纳

WPS的JS宏,图片应该怎么提交?

我需要转为文件 并通过fetch提交POST请求。WPS开发文档中并未见到有相关函数,我该如何将图片包含在请求中?
附代码:


var image1 = sht1.Range('Q'+i).Value2;
//单元格内的图片获取到的值为: =DISPIMG("ID_9ADE**********************",1) ;
fetch(api, {

"headers": {

"Content-Type":"multipart/form-data",

"X-Auth-Token": Label1text

},

"body": 一些单元格中取的值和图片,

"method": "POST"

}).then(e=>e.text()).then(console.log);

  • 写回答

2条回答 默认 最新

  • 一轮明月照丘壑 2024-09-29 15:55
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    WPS的JS宏环境中可能不支持直接操作图片并将其作为multipart/form-data提交至服务器。不过,你可以尝试以下方法来解决这个问题:

    1. 将图片转换为Base64编码的字符串:你可以使用JavaScript将图片读取为字节数据,并将其转换为Base64编码的字符串。然后将该字符串添加到请求的body中。请确保图片的来源允许这种方式处理。示例代码如下:
    var imageElement = document.getElementById('imageId'); // 获取图片元素
    var imageBase64 = btoa(unescape(encodeURIComponent(imageElement.src))); // 将图片转换为Base64编码字符串
    

    然后你可以在fetch请求的body中使用这个编码字符串。请注意,你可能需要调整请求头中的Content-Type为适当的格式(如"image/jpeg"或"image/png"等),具体取决于你上传的图片类型。示例代码如下:

    fetch(api, {
      headers: {
        "Content-Type": "application/x-www-form-urlencoded", // 根据实际情况调整Content-Type的值
        "X-Auth-Token": Label1text
      },
      body: 'image=' + imageBase64 + '&otherParameters=' + otherValues, // 将图片和其他参数拼接成字符串提交
      method: "POST"
    }).then(response => response.text()).then(console.log);
    

    这里的'image='和'otherParameters='只是示意性的参数名称,你需要根据实际情况进行调整。确保将其他参数也添加到请求的body中。

    请注意,这种方法可能不适用于所有情况,特别是当涉及到安全性或跨域问题时。此外,由于WPS的JS宏环境可能与标准浏览器环境中的JavaScript有所不同,所以上述方法可能需要适应WPS的具体环境和限制。如果你无法直接在WPS中实现所需的功能,可能需要考虑使用其他工具或库来处理图片上传操作。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 今天
  • 创建了问题 9月29日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?