英语轻松读发新版了,欢迎下载、更新

用AFNetworking来POST一张image,咋么都不成功

leezhm 发布于 2014年09月25日 | 更新于 2014年09月29日
无人欣赏。

网页端上传的方法如下:

<form enctype="multipart/form-data" action="upload.php" method="POST">
Send this file: <input name="fileUpload" type="file">
<input type="submit" name="action" value="UploadFile">
</form>

你参考下里面的参数 post的地址:http://www.xxx.com/sites/upload/upload.php

我的代码如下

// just testing
AFHTTPRequestOperationManager * httpManager = [[AFHTTPRequestOperationManager alloc] init];
httpManager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
UIImage * testing = [UIImage imageNamed:@"testing"];
NSData * imageData = UIImagePNGRepresentation(testing);
NSDictionary *parameters = @{@"fileUpload": @"testing.png", @"action": @"UploadFile"};
[httpManager POST:@"http://www.xxx.com/sites/upload/upload.php"
       parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFormData:imageData name:@"image"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    DDLogInfo(@"SUCCESSFULLY");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    DDLogError(@"FAILURE : %@ --> %@", operation.responseString, error);
}];

哪位熟悉的帮忙看看,每次我都返回成功了,但是服务器上就是没有照片的。

共2条回复
terryso 回复于 2014年09月25日

你要服务端打印日志看看有没有收到数据啊。。。如果服务端收到数据的话,那就是你服务端代码有问题。。。

qtdc1229 回复于 2014年09月29日

前两天写过类似的看了下你的代码,唯一和我不一样的只有这一句

[formData appendPartWithFileData:self.imageData name:@"image" fileName:@"image.png" mimeType:@"image/png"];

楼主的代码这部分的数据的mime应该是以stream的形式发送,服务器时候处理正确? 这里之前filename没有写后缀,我们服务器端写了以文件命名来区分的,所以总是收不到,后来根据mime来判断就可以了。

登录 或者 注册