回答
在 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 的文件参数支持以下三种写法,你可根据服务端要求选择:
open(文件路径):直接传入文件流对象。['文件名', 文件路径]:指定文件名和路径。['文件名', 'MIME类型', 文件路径]:最完整格式。上传图片时建议明确指定image/jpeg或image/png,避免服务端因无法识别文件类型而拒绝请求。
关键注意事项
- 确保脚本运行前已授予 Hamibot 存储权限,且
imagePath指向的文件真实存在。 - 上传接口的字段名(示例中的
image)必须与后端要求完全一致,常见字段名为file、avatar、image等。 - 若图片体积较大,建议在上传前使用
images.compress或images.save调整质量,避免请求超时。 - 网络请求需在 Hamibot 脚本执行环境中运行,确保设备网络通畅且接口支持跨域(如适用)。
按上述结构配置即可稳定完成图片上传。若你的接口有特殊签名、Header 或加密要求,可提供具体规范,我会为你补充对应的请求头配置。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实