使用AFNetworking 3.0上传图像 [英] Uploading an image using AFNetworking 3.0
问题描述
我尝试使用AFNetworking3.0上传图片。
我试图找到如何从所有stackoverflow和教程上传图像,但所有这些都与AFNetworking2.0及以下相关。
主要关注的是我要将图像上传到网站。
I tried to upload the image with using AFNetworking3.0. I have tried to find how to upload image from all stackoverflow and tutorial, but all of these are relative with AFNetworking2.0 and below. The main focus is that I am going to upload the image to the web site.
图片上传后,图片网址应该存在于网络上网站。
Once the image is uploaded, the image url should be existed on web site.
请参阅下面的代码。
AFHTTPRequestOperationManager *requestManager;
[requestManager POST:KAPIUploadOutfit parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
[formData appendPartWithFileURL:fileURL name:@"photo_url" fileName:filename mimeType:@"image/png" error:nil];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
successCB(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
errorCB(CONNECTION_ERROR);
}];
我不确定参数是什么。
请告诉我该怎么做。
I am not sure what the parameter is about. Please tell me how to do it.
推荐答案
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:[NSURL fileURLWithPath:@"file://path/to/image.jpg"] name:@"file" fileName:@"filename.jpg" mimeType:@"image/jpeg" error:nil];
} error:nil];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSURLSessionUploadTask *uploadTask;
uploadTask = [manager
uploadTaskWithStreamedRequest:request
progress:^(NSProgress * _Nonnull uploadProgress) {
// This is not called back on the main queue.
// You are responsible for dispatching to the main queue for UI updates
dispatch_async(dispatch_get_main_queue(), ^{
//Update the progress view
[progressView setProgress:uploadProgress.fractionCompleted];
});
}
completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"%@ %@", response, responseObject);
}
}];
[uploadTask resume];
在此代码 http://example.com/upload 是图片上传的api, file://path/to/image.jpg 是您的本地图片路径。
In this code http://example.com/upload is api where image is going to upload and file://path/to/image.jpg is your local image path.
这篇关于使用AFNetworking 3.0上传图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!