2014-01-17 58 views
0

我想通过AFnetworking上传图片。我能够获得图像网址,并且确实与我的服务器联系。但是,它不会上传。文件上传文件夹为空,当我回到我的JSON响应,这是“空”AFNetworking不上传图片

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage]; 


ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
// Request to save the image to camera roll 
[library writeImageToSavedPhotosAlbum:[image CGImage] orientation:(ALAssetOrientation)[image imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){ 
    if (error) { 
     NSLog(@"error"); 
    } else { 
     NSLog(@"url %@", assetURL); 
     NSData *data = [NSData dataWithContentsOfURL:assetURL]; 
     NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
     path = [path stringByAppendingString:@"/image.jpg"]; 
     [data writeToFile:path atomically:YES]; 
     [self uploadPhoto:path]; 
     // NSLog(path); 
     [self dismissModalViewControllerAnimated:NO]; 
    } 
}]; 

} 
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
     NSDictionary *parameters = @{@"foo": self.targetid}; 
     NSURL *filePath = [NSURL fileURLWithPath:file]; 
     [manager POST:@"http:/****/uploadpics.php" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
     [formData appendPartWithFileURL:filePath name:@"image" error:nil]; 
} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Success: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

图像的URL看起来是这样的:

/var/mobile/Applications/FFCAE923-1115-4209-AB39-D9D1ACEB9CB7/Documents/yourLocalImage.png 

我似乎无法弄清楚什么是我做错了。该脚本是很好,因为它适用于只是因为它是应该的Android ...

PHP:

$name = $_FILES['filename']['name']; 

if (is_uploaded_file($_FILES['filename']['tmp_name'])){ 
    if (move_uploaded_file($_FILES['filename']['tmp_name'], $folder.$_FILES ['filename']   ['name'])) { 
    Echo $foname; 
} else { 

    } 
} else { 

} 

回答

1

您的上传代码将文件名称命名为image,但您的脚本似乎预计为filename。我有一段时间没有做任何PHP,但我认为他们应该匹配。

还有一种方法允许您指定更多关于您附加到表单数据的部分的细节,因此您可能需要设置适当的名称。

+0

写wain ..... – vivek

+0

在php或Obj C中..我的脑袋受到了所有这些语言的伤害=(..我不知道他们是否应该匹配..我想文件名是appendPartWithFileURL ...会将其张贴为http发布文件的文件名..可能是错误的,但.. – Dnaso

+0

我试图改变它,没有区别 – Dnaso