【问题标题】:Is there a file size limit in uploading files with AFNetWorking?使用 AFNetWorking 上传文件是否有文件大小限制?
【发布时间】:2019-06-13 08:45:08
【问题描述】:

我正在使用AFNetworking 3.0 将一些图片上传到php 中的服务器。代码非常简单。但它不起作用,我不知道原因。

我总是得到 php 错误:

UPLOAD_ERR_INI_SIZE。

php.ini的限制大小是2M,我的图片大小只有200K,我试过用safari测试,效果很好。

当我使用非常小的图片时,6k,它也很有效。

这是我的代码:


客户:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        //   manager.responseSerializer = [AFJSONResponseSerializer serializer];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    manager.responseSerializer.acceptableContentTypes = [[NSSet alloc] initWithObjects:@"application/xml", @"text/xml",@"text/html", @"application/json",@"text/plain",nil];

    [manager POST:@"http://192.168.1.108/upload.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {

        UIImage *image =[UIImage imageNamed:@"moon"];
        NSData *data = UIImagePNGRepresentation(image);

        //file name
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat = @"yyyyMMddHHmmss";
        NSString *str = [formatter stringFromDate:[NSDate date]];
        NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];


        [formData appendPartWithFileData:data name:@"img" fileName:fileName mimeType:@"image/jpeg"];

    } progress:^(NSProgress * _Nonnull uploadProgress) {


    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSString *result  =[[ NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        NSLog(@"%@",result);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"fail %@", error);
    }];
}

上传.php

<?php
$file = $_FILES['img'];
if ($file['error'] == 0) {
    $typeArr = explode("/", $file["type"]);
    if($typeArr[0]== "image"){
        $imgType = array("png","jpg","jpeg");
        if(in_array($typeArr[1], $imgType)){ 
            $imgname = "file/".time().".".$typeArr[1];
            $bol = move_uploaded_file($file["tmp_name"], $imgname);
            if($bol){
                echo "ok";
            } else {
                echo "fail";
            };
        };
    } 
} else {
    echo $file['error'];
};

有什么帮助吗?谢谢。

【问题讨论】:

  • AFNetworking 只是一个网络框架。它不会对您的网络设置任何限制。您是否尝试过仅使用 NSURLSession 进行上传?
  • 谢谢你,雾迈斯特。祝你有美好的一天。

标签: objective-c afnetworking-3


【解决方案1】:

我刚刚发现出了什么问题。

我的图片是jpg,我用UIImagePNGRepresentation获取数据,我应该用UIImageJPEGRepresentation代替。

谢谢。

【讨论】:

  • 很高兴您对它进行了排序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-16
  • 1970-01-01
  • 2011-01-29
  • 2017-03-09
  • 2011-01-13
  • 1970-01-01
相关资源
最近更新 更多