【问题标题】:AFNetworking not uploading imageAFNetworking 不上传图片
【发布时间】:2014-02-07 06:20:17
【问题描述】:

我正在尝试通过AFnetworking 上传图片。我能够获取图像 url,并且它确实与我的服务器联系。但是,它不会上传。文件上传文件夹是空的,当我返回我的 JSON 响应时,它是“null”

   - (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);
}];

图片网址如下所示:

/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 {

}

【问题讨论】:

    标签: ios image file-upload afnetworking afnetworking-2


    【解决方案1】:

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

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

    【讨论】:

    • 在 php 或 Obj C 中?.. 所有这些语言都让我头疼 =(.. 我不确定它们是否应该匹配 .. 我认为文件名是 appendPartWithFileURL ... 将其发布为http post files 文件名..可能是错误的但是..
    • 更改 obj-c。使用 Charles 代理查看实际发送的内容。
    • @Wain,我实际上通过检查 AFNetworking 缩小了范围。我得到以下信息:b] 附加部分失败并出现错误:Error Domain=AFNetworkingErrorDomain Code=-1000 “操作无法'未完成。预期 URL 为文件 URL" UserInfo=0x146429d0 {NSLocalizedFailureReason=预期 URL 为文件 URL 显然我的图像的位置无法解析为 NSURL。但它 int var/folder,不是吗?否则你知道我怎么能把它放在 file:/// 目录中吗?
    • 看起来不错。你记录了网址吗?由于某种原因,它实际上是 nil 吗?
    • @Wain no url 不是 nil url 是:/var/mobile/Applications/FFCAE923-1115-4209-AB39-D9D1ACEB9CB7/Documents/yourLocalImage.png 但我在将其转换为之前记录它一个 NSURL。我将尝试将其记录为 NSURL,看看是否出现相同的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    相关资源
    最近更新 更多