Objective c 使用AFN网络上传文件时是否有文件大小限制?

Objective c 使用AFN网络上传文件时是否有文件大小限制?,objective-c,afnetworking-3,Objective C,Afnetworking 3,我正在使用AFNetworking 3.0将一些图片上传到php服务器。代码非常简单。但它不起作用,我不知道原因 我总是遇到php错误: 上载\u ERR\u INI\u大小 php.ini中的限制大小是2M,我的图片大小只有200K,我尝试使用safari进行测试,效果很好 当我使用一张非常小的图片时,6k,它也能工作 这是我的密码: 客户端: AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //

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

我总是遇到php错误:

上载\u ERR\u INI\u大小

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);
    }];
}
AFHTTPSessionManager*manager=[AFHTTPSessionManager-manager];
//manager.responseSerializer=[AFJSONResponseSerializer序列化程序];
manager.responseSerializer=[AFHTTPResponseSerializer序列化程序];
manager.responseSerializer.acceptableContentTypes=[[NSSet alloc]initWithObjects:@“application/xml”,“text/xml”,“text/html”,“application/json”,“text/plain”,nil];
[经理职务:@”http://192.168.1.108/upload.php“参数:nil constructingBodyWithBlock:^(id_非空formData){
UIImage*image=[UIImage ImageName:@“月亮”];
NSData*data=UIIMAGEPNGRE显示(图像);
//文件名
NSDateFormatter*格式化程序=[[NSDateFormatter alloc]init];
formatter.dateFormat=@“yyyyMMddHHmmss”;
NSString*str=[格式化程序stringFromDate:[NSDate date]];
NSString*文件名=[NSString stringWithFormat:@“%@.jpg”,str];
[formData appendPartWithFileData:数据名称:@“img”文件名:文件名mimeType:@“image/jpeg”];
}进度:^(NSProgress*_非空上传进度){
}成功:^(NSURLSessionDataTask*_非空任务,id_可空响应对象){
NSString*result=[[NSString alloc]initWithData:responseObject编码:NSUTF8StringEncoding];
NSLog(@“%@”,结果);
}失败:^(NSURLSessionDataTask*_可空任务,NSError*_非空错误){
NSLog(@“失败%@”,错误);
}];
}

upload.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'];
};

我刚刚发现了问题所在

我的图片是jpg,我使用了
UIImagePNGRepresentation
来获取数据,我应该使用
uiimagejpegresentation


谢谢。

AFNetworking只是一个网络框架。它不会对您的网络设置任何限制。您是否尝试过使用
NSURLSession
进行上传?谢谢您,福格迈斯特。祝你今天愉快。很高兴你把它整理好了。