2
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1:8000/photo/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSDictionary *headers = [NSDictionary dictionaryWithObject:data forKey:@"attachment"];
//NSLog(@"strimng");
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"upload/" parameters:nil constructingBodyWithBlock: ^(id<AFMultipartFormData> formData) {
    NSLog(@"strimng");
    [formData appendPartWithFileData:data name:@"attachment" fileName:@"attachment.jpg" mimeType:@"image/jpeg"];
    NSLog(@"strimng");
}];
NSLog(@"strimng");
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
    NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[operation start];

AFNetworking を使用して iPhone から画像をアップロードしようとしていますが、うまくいきません。formdata appenddata コマンドの直前の NSLog がログアウトされます。しかし、その後はそうではないようです。NSdata が nil であるかどうかも確認しましたが、そうではありません。そして、リクエストが送信されていないことがわかります。誰でも私を助けてください。

4

1 に答える 1

3

画像をアップロードする必要があると仮定すると、なぜでを作成するNSDictionarydataですか?必要はありません。data内部で使用するだけですmultipartFormRequestWithMethod

次を試してください

// Get the image that you want to upload via ImagePicker or a @property
UIImage *imageIWantToUpload = self.image;

// Create the NSData object for the upload process
NSData *dataToUpload = UIImageJPEGRepresentation(imageIWantToUpload, 0.5);

NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"upload/" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:dataToUpload name:@"attachment" fileName:@"attachment.jpg" mimeType:@"image/jpg"];
}];

// You can add then the progressBlock and the completionBlock
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setUploadProgressBlock:progress];
[operation setCompletionBlockWithSuccess:success failure:failure];

NSMutableURLRequestまた、パラメータのフィールドをに設定しているため、サーバー側でいくつかのパラメータが必要かどうかを再確認する必要がありますnil

于 2012-12-04T08:05:59.250 に答える