利用UIImage的NSData上传多表单到指定服务器 NSMutableURLRequest

 

再上传图片的过程中,我用了3天时间终于把这个问题给解决了。主要是细节上总是出错。像我标示加粗的地方都是很容易出错的地方。要仔细看清楚了!少一个字符都不行!

接口类的 boundry定义

static   NSString *  const BOUNDRY = @"0xKhTmLbOuNdArY";

boundry=BOUNDRY

发送实体类:

 

@implementation SendBinaryImage

// 傳送圖片二進制流 

+(BOOL )sendImage:(NSData *)data1 boundry:(NSString *)boundry{

NSURL  *urlstring= @"http://192.168.10.88/test/test.php"; //

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

    NSMutableURLRequest  *request=[[[NSMutableURLRequest alloc] init] autorelease];

    [request  setURL: [NSURL URLWithString:urlstring]];

[request  setHTTPMethod:@"POST" ];

[request  addValue:contentType forHTTPHeaderField:@"Content-Type" ];

NSMutableData  *body=[NSMutableData  data];

NSMutableString *str=[[NSMutableString alloc] init];

[str appendFormat:@"\r\n\r\n--%@\r\n" ,boundry];

[str appendFormat: @"Content-Disposition:form-data; name=\"username\"\r\n\r\n"];

[str appendFormat:@"username" ];

[str appendFormat:@"\r\n\r\n--%@\r\n" ,boundry];

[str appendFormat: @"Content-Disposition:form-data; name=\"passwd\"\r\n\r\n"];

[str appendFormat:@"password" ];

[body appendData:[str  dataUsingEncoding:NSUTF8StringEncoding]];//application/octet-stream

[body appendData:[[NSString  stringWithFormat:@"\r\n--%@\r\n" ,boundry] dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[[NSString stringWithFormat: @"Content-Disposition:form-data; name=\"filedata\"; filename=\"ttt.jpg\"\r\nContent-Type:application/octet-stream\r\nContent-Transfer-Encoding: binary\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 

[body appendData:[NSData  dataWithData:data1]];

[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n" ,boundry] dataUsingEncoding:NSUTF8StringEncoding]];

[str  release];

 

[request setHTTPBody:body]; 

NSURLResponse  *response;

NSError *err;

NSData *returnData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];

NSString *returnString=[[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

NSLog(returnString);

NSString *content=@"1" ;

 

    BOOL logined = [content intValue] == 1 ;

return logined;

}

+(NSString*)getBoundry{

return BOUNDRY;

}

@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值