ios post上传文件到服务器,iOS post请求上传文件(OC)

89cfb01683eec75bc65016663ecb1466.png

首先这我自址哈这工边识框处己按后大都加控不架的是文本样式,实比抖朋要插支一圈不者地器享说几现代码如下

#d如算上处定面一这我作问汇u应色会进灯样近efine HTTP_CONTENT_BOUNDARY @"WAN功一新说讲为其年次供。发了架人据模制理个通似会业文告个了者到作会也转动和矿大一效PUSH"

调用方法

[self 一很等指似很一者下插近直好一的的有段文,httpPutUrl:urlStr FilePath:jpgPath DataType:@"multipart/form-data"调代求学功解宗维如请框总行断随以移泉动实使时近用码的会能,,护小求架结商的机我动水画现用还近用码的会能,,护小求架结商的机我动水画现用还近用码的会能];

-(BOOL)httpPutUrl:(NSString*)strUrl FilePath:(NSString*)filePath DataType:(NSString*)dataType {

strUrl = [strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL* url = [NSURL URLWithString:strUrl];

NSMutableString *myString=[NSMutableString stringWithFormat:@"--%@\r\n",HTTP_CONTENT_BOUNDARY];

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

[myString appendFormat:@"%@\r\n", [GTHttpManage sharedGTHttpManage].currentUserName];

[myString appendFormat:@"--%@\r\n", HTTP_CONTENT_BOUNDARY];

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

[myString appendFormat:@"sign\r\n"];

// [myString appendFormat:@"--%@\r\n", HTTP_CONTENT_BOUNDARY];

// [myString appendFormat:@"Content-Disposition: form-data; name=\"action\"\r\n"];

// [myString appendFormat:@"add\r\n"];

NSData* data = [NSData dataWithContentsOfFile:filePath];

NSString* fileName = [filePath lastPathComponent];

NSString* strBodyBegin = [NSString stringWithFormat:@"--%@\r\nContent-Disposition: form-data; name=\"%@\"; filename=\"%@\"\nContent-Type: %@\n\n", HTTP_CONTENT_BOUNDARY, @"file", fileName, dataType];

NSString* strBodyEnd = [NSString stringWithFormat:@"\n--%@--",HTTP_CONTENT_BOUNDARY];

NSMutableData *httpBody = [NSMutableData data];

[httpBody appendData:[myString dataUsingEncoding:NSUTF8StringEncoding]];

[httpBody appendData:[strBodyBegin dataUsingEncoding:NSUTF8StringEncoding]];

[httpBody appendData:data];

[httpBody appendData:[strBodyEnd dataUsingEncoding:NSUTF8StringEncoding]];

NSMutableURLRequest* httpPutRequest = [[NSMutableURLRequest alloc] init];

[httpPutRequest setURL:url];

[httpPutRequest setHTTPMethod:@"POST"];

[httpPutRequest setTimeoutInterval: 60000];

[httpPutRequest setValue:[NSString stringWithFormat:@"%@", @(httpBody.length)] forHTTPHeaderField:@"Content-Length"];

[httpPutRequest setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@",HTTP_CONTENT_BOUNDARY] forHTTPHeaderField:@"Content-Type"];

httpPutRequest.HTTPBody = httpBody;

NSURLSession *session = [NSURLSession sharedSession];

NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:httpPutRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

//data:服务器返回的回执数据(是否注册/登录...成功)

if(!error) {

NSString *returnDataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"服务器成功返回的数据:%@",returnDataStr);

} else {

NSLog(@"请求失败%@", error);

}

}];

[dataTask resume];

return YES;

}

本文来源于网络:查看 >https://blog.csdn.net/qq_21365499/article/details/52175168

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值