HarmonyOS 鸿蒙Next上传单个图片,以MultipartBody.Part格式

HarmonyOS 鸿蒙Next上传单个图片,以MultipartBody.Part格式 POST请求,MultipartBody.Part以数组形式上传成功了;

但是以单个上传失败,一直返回状态码500;

2 回复

方便贴下具体的代码吗,或者您参考下下面这个格式呢

MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);

builder.addFormDataPart("file", file.getName(), body);

MultipartBody.Part part = builder.build().part(0);

更多关于HarmonyOS 鸿蒙Next上传单个图片,以MultipartBody.Part格式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS中,上传单个图片并以MultipartBody.Part格式处理,可以通过使用ohos.net.http模块中的RequestBodyMultipartBody类来实现。首先,你需要将图片文件转换为RequestBody对象,然后将其包装为MultipartBody.Part

以下是一个简单的代码示例:

import http from '@ohos.net.http';
import fileio from '@ohos.fileio';

// 假设图片文件路径为 '/data/storage/el2/base/files/image.jpg'
let filePath = '/data/storage/el2/base/files/image.jpg';

// 创建文件RequestBody
let fileRequestBody = http.RequestBody.createFileBody(filePath, 'image/jpeg');

// 创建MultipartBody.Part
let part = http.MultipartBody.Part.createFormDataPart('file', 'image.jpg', fileRequestBody);

// 创建MultipartBody
let multipartBody = new http.MultipartBody.Builder()
    .setType(http.MultipartBody.FORM)
    .addPart(part)
    .build();

// 创建HTTP请求
let httpRequest = http.createHttp();
let url = 'https://your-server.com/upload';
let options = {
    method: http.RequestMethod.POST,
    extraData: multipartBody,
    header: {
        'Content-Type': 'multipart/form-data'
    }
};

// 发送请求
httpRequest.request(url, options, (err, data) => {
    if (err) {
        console.error('Upload failed:', err);
    } else {
        console.log('Upload successful:', data.result);
    }
});

在这个示例中,首先通过http.RequestBody.createFileBody方法将图片文件转换为RequestBody对象。接着,使用http.MultipartBody.Part.createFormDataPart方法将其包装为MultipartBody.Part。然后,构建MultipartBody并发送HTTP请求。

注意:确保文件路径正确,并且服务器端能够处理multipart/form-data格式的请求。

回到顶部