ios,将UIImage转换为MultipartFile



我想向具有RestFul api的web服务器发送一个图像。这就是我的后台。第一个RequestParam ecgImage是图像。

@RequestMapping(value = "/ecgimage", method = RequestMethod.POST)
    public void profileImage(@RequestParam("ecgImage") MultipartFile formData,
            @RequestParam("heartRate") int heartRate,
            @RequestParam("dateTime") String dateTime,
            @RequestParam("mac") String mac, @RequestParam("qrs") String qrs,
            @RequestParam("result") String result) throws Exception {
    ......
}

我在ios中使用UNIRest库进行restful调用,我希望这样的东西能在中工作

UIImage *img = // this is the image that I want to send
NSDictionary* headers = @{@"Content-Type": @"application/x-www-form-urlencoded"};
NSMutableDictionary* parameters = [[NSMutableDictionary alloc] init];
[parameters setObject:[self.dateUtils convertNSDateToMMDDYYY:date] forKey:@"date"];
[parameters setObject:hr forKey:@"heartRate"];
[parameters setObject:hr forKey:@"result"];
[parameters setObject:qrs forKey:@"qrs"];
[parameters setObject:????????? forKey:@"ecgImage"];
[[UNIRest post:^(UNISimpleRequest *request) {
     [request setUrl:POstECGImage];
//   [request setHeaders:headers];
     [request setParameters:parameters];
}] asJsonAsync:^(UNIHTTPJsonResponse* response, NSError *error) {
}];

如何发送图像?

在安卓系统中,我曾经把图像作为位图,我这样发送它。

Bitmap bitmap = // contains the image
ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);
            multipartEntity.addPart("ecgImage",
                    new ByteArrayBody(baos.toByteArray(), "ecg.jpg"));
            multipartEntity.addPart("dateTime", new StringBody(dateTime));
            multipartEntity.addPart("heartRate",
                    new StringBody(String.valueOf(heartRate)));
            multipartEntity.addPart("qrs", new StringBody(String.valueOf(qrs)));
            multipartEntity.addPart("result", new StringBody(result));
            multipartEntity.addPart("mac", new StringBody(mac));

但我现在在iOS中,我只有一个UIImage。所以我试着搜索"将UIImage转换为ByteArrayBody",但没有成功。Objective-C 中的等效代码是什么

您需要将其转换为NSData对象:

NSData *_imageData = UIImageJPEGRepresentation(image, 1);
[parameters setObject:UIImageJPEGRepresentation(image, 1) forKey:@"ecgImage"];

最新更新