码迷,mamicode.com
首页 > 移动开发 > 详细

ios 多文件上传

时间:2015-07-03 01:34:47      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

/**

 *  上传多个文件

 *

 *  @param url      请求接口地址

 *  @param filedata 文件名称和数据(key:value)

 *  @param btnName  上传网页的btn (接口)

 *  @param parms    附加上传参数

 */

-(void)httpSendDataWithUrl:(NSString*)url data:(NSDictionary*)filedata name:(NSString*)btnName parms:(NSDictionary*)parms

{

    

    NSString *httpUrl=url;

    //----------------------Post方法的URL和请求头-----------

    NSMutableURLRequest *mRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:httpUrl]];

    mRequest.HTTPMethod=@"post";

    //Content-Type:multipart/form-data; boundary=----WebKitFormBoundarywrkpby4PbAPpMcFc

    NSString *str=[NSString stringWithFormat:@"multipart/form-data; boundary=%@",KEYWard];

    [mRequest setValue:str forHTTPHeaderField :@"Content-Type"];

    mRequest.HTTPBody=[self makeBodydata:filedata name:btnName parms:parms];

    

    //----------------------Post方法的URL和请求头-----------

    [NSURLConnection sendAsynchronousRequest:mRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

        if (!connectionError) {

            NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;

            if (httpResponse.statusCode == 200) {

                NSError *error=nil;

                id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

                if (error) {

                    NSLog(@"json解析错误!!!!!!");

                }

                else

                {

                    NSLog(@"%@",json);

                }

            }else{

                NSLog(@"服务器内部错误");

            }

        }else{

            NSLog(@"请求错误%@",connectionError);

        }

        

    }];

    

}

-(NSData*)makeBodydata:(NSDictionary*)filedata name:(NSString*)btnName parms:(NSDictionary*)parms

{

    NSMutableData *mData = [NSMutableData data];

    //准备文件

    [filedata enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSData *data, BOOL *stop) {

        //        ------WebKitFormBoundarycwuJbGNWchuHGPRT

        //        Content-Disposition: form-data; name="userfile[]"; filename="Snip20150701_10.png"

        //        Content-Type: image/png

        //1

        NSMutableString *mStr = [NSMutableString string];

        [mStr appendFormat:@"\r\n--%@\r\n",KEYWard];

        [mStr appendFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n",btnName,key];

        [mStr appendString:@"application/octet-stream\r\n"];

        [mStr appendString:@"\r\n"];

        [mData appendData:[mStr dataUsingEncoding:NSUTF8StringEncoding]];

        //2

        [mData appendData:data];

        

    }];

    

    

    

    //准备表单中的数据

    [parms enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *value, BOOL *stop) {

        //        ------WebKitFormBoundarycwuJbGNWchuHGPRT

        //        Content-Disposition: form-data; name="username"

        //

        //        345345

        

        

        NSMutableString *mStr = [NSMutableString string];

        [mStr appendFormat:@"\r\n--%@\r\n",KEYWard];

        [mStr appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n",key];

        [mStr appendString:@"\r\n"];

        [mStr appendFormat:@"%@\r\n",value];

        [mData appendData:[mStr dataUsingEncoding:NSUTF8StringEncoding]];

        

    }];

    

    

    

    

    NSString *end = [NSString stringWithFormat:@"--%@--\r\n",KEYWard];

    [mData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];

    return mData.copy;

 

    

}

ios 多文件上传

标签:

原文地址:http://www.cnblogs.com/tangranyang/p/4617486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!