2014-01-17 4 views
0

Я пытаюсь загрузить изображение через AFnetworking. Я могу получить URL-адрес изображения, и он связан с моим сервером. Однако он не будет загружен. Папка загрузки файлов пуст, и, когда я вернусь мой ответ JSON, это «пустой»AFNetworking not uploading image

- (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 

Я не могу показаться, чтобы выяснить, что я Я делаю неправильно .. сценарий хорошо, потому что он работает для андроида так же, как это предполагается ...

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? .. у меня болит голова со всех этих языков = (.. я не уверен, что они должны совпадать .. я думаю, что filename is appendPartWithFileURL ... будет опубликуйте его как имя файла http post files .. может быть неправильным, но .. – Dnaso

+0

Я попытался изменить его и не разницу – Dnaso