Objective c 使用AFN网络上传文件时是否有文件大小限制?
我正在使用AFNetworking 3.0将一些图片上传到php服务器。代码非常简单。但它不起作用,我不知道原因 我总是遇到php错误: 上载\u ERR\u INI\u大小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]; //
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
进行上传?谢谢您,福格迈斯特。祝你今天愉快。很高兴你把它整理好了。