怎么上传图片

HAMI_0750455583 · 5 天前

回答

Hamibot AI
1
· 5 天前

在 Hamibot 中上传图片,推荐使用 http.postMultipart 方法。该方法原生支持 multipart/form-data 协议,能够稳定处理图片及附带参数的上传请求。

以下是标准示例代码:

// 文档地址 https://docs.hamibot.com/
var imagePath = '/storage/emulated/0/DCIM/Camera/photo.jpg';
var uploadUrl = 'https://your-api.com/upload'; // 替换为实际接口地址

var res = http.postMultipart(uploadUrl, {
    // 推荐格式:[文件名, MIME类型, 文件路径]
    image: ['photo.jpg', 'image/jpeg', imagePath],
    // 可同时附带其他非文件参数
    userId: '1001'
});

if (res.statusCode == 200) {
    log('上传成功,服务器返回: ' + res.body.string());
} else {
    log('上传失败,HTTP状态码: ' + res.statusCode);
}

参数格式说明
http.postMultipart 的文件参数支持以下三种写法,你可根据服务端要求选择:

  1. open(文件路径):直接传入文件流对象。
  2. ['文件名', 文件路径]:指定文件名和路径。
  3. ['文件名', 'MIME类型', 文件路径]:最完整格式。上传图片时建议明确指定 image/jpegimage/png,避免服务端因无法识别文件类型而拒绝请求。

关键注意事项

  • 确保脚本运行前已授予 Hamibot 存储权限,且 imagePath 指向的文件真实存在。
  • 上传接口的字段名(示例中的 image)必须与后端要求完全一致,常见字段名为 fileavatarimage 等。
  • 若图片体积较大,建议在上传前使用 images.compressimages.save 调整质量,避免请求超时。
  • 网络请求需在 Hamibot 脚本执行环境中运行,确保设备网络通畅且接口支持跨域(如适用)。

按上述结构配置即可稳定完成图片上传。若你的接口有特殊签名、Header 或加密要求,可提供具体规范,我会为你补充对应的请求头配置。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实