PHP后台 iOS上传文件

本文介绍了一个文件上传解决方案,包括PHP后端实现与iOS客户端交互过程。通过具体的代码示例,展示了如何配置文件上传参数及使用AFNetworking进行多部分数据上传。

写上传文件纯粹就是装逼,我们就当上传图片好了 。。。

首先感谢github友:https://github.com/silenceper/UploadFile


为啥子要写这篇文章,首先申明下本人不是闲的蛋疼,而是本人的确在工作中遇到蛋疼的问题,本地不是大牛,但是相互学习指点吧。。。  


我们是要上传文件,一般都是post请求,开始之前你需要将这个文件搞到你项目中



请注意路径,UploadFile.class.php的路径


代码如下

include '../UploadFile.class.php';

$value=  htmlspecialchars($_POST["action"]);
$action = $value?$value:"";

$user_id=htmlspecialchars($_POST["user_id"]);


$img_arr=$_FILES["picname"];

if ($action=="update_photo") {
    updateUserAction($user_id,$img_arr);
}

function updateUserAction($u_id,$i_arr){
    
    $upload=new UploadFile();
    $upload->maxSize  = 3*pow(2,20) ;// 设置附件上传大小  3M    默认为2M
    $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型   默认为空不检测扩展
    $upload->savePath =  './pictures/';// 设置附件上传目录   默认上传目录为 ./uploads/
    
    
     $result= $upload->upload();
    
    
    $output=array("obj"=>$i_arr,"msg"=>$result,"status"=>200,"list"=>$upload->getUploadFileInfo());
    
  
    
            exit(json_encode($output));
}


然后就是iOS端了 。。。 iOS端,就要注意了  ,有点小小的蛋疼

先上代码。。。 

  NSMutableDictionary *data=[[NSMutableDictionary alloc] init];
    [data setObject:@"1" forKey:@"user_id"];
    [data setObject:@"update_photo" forKey:@"action"];

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    //支持HTTPS请求
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];
    securityPolicy.allowInvalidCertificates = YES;
    manager.securityPolicy = securityPolicy;
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject: @"application/json"];
    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    [manager POST:@"http://192.168.2.1/sqltest/user.php" parameters:data constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        
         [formData appendPartWithFileData:UIImagePNGRepresentation([UIImage imageNamed:@"defimg"]) name:@"picname[0]" fileName:@"defimg.png" mimeType:@"png"];
        
        [formData appendPartWithFileData:UIImageJPEGRepresentation([UIImage imageNamed:@"testimg.jpg"], 1) name:@"picname[1]" fileName:@"testimg.jpg" mimeType:@"jpg"];
        
    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        
        
        NSLog(@"...responseObject = %@",responseObject);
        
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
        NSLog(@"...error = %@",error);
        
    }];





name:@"picname[0]" 表示第一张, 

name:@"picname[1]" 表示第二张

name:@"picname[n]" 表示第n+1张 


fileName:@"testimg.jpg"   这里最好是把后缀名带上,多了不用解释了 









评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值