IOS开发基础之单文件上传基础最原始的方式
生活随笔
收集整理的這篇文章主要介紹了
IOS开发基础之单文件上传基础最原始的方式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
IOS開(kāi)發(fā)基礎(chǔ)之單文件上傳基礎(chǔ)最原始的方式
info.plist 加入一行代碼
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict> // // ViewController.m // 05-上傳單個(gè)文件 // // Created by 魯軍 on 2021/2/13. //#import "ViewController.h" #define kBOUNDARY @"abc" @interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view. }- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{//@"http://localhost:8080/MJServer/upload"// [self uploadFile];NSString *path=[[NSBundle mainBundle] pathForResource:@"IOSThreadNetwork.zip" ofType:nil];[self uploadFile:@"http://localhost:8080/MJServer/upload" fieldName:@"file" filePath:path]; }-(void)uploadFile:(NSString *)urlString fieldName:(NSString *)fieldNamefilePath:(NSString *)filePath{NSURL *url =[NSURL URLWithString:urlString];NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];request.HTTPMethod=@"post";[request setValue:[NSString stringWithFormat:@"multipart/form-data;boundary=%@",kBOUNDARY] forHTTPHeaderField:@"Content-Type"];//request.HTTPBody=[self makeBody];request.HTTPBody=[self makeBody:fieldName filePath:filePath];[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {if(connectionError){NSLog(@"連接錯(cuò)誤 %@",connectionError);return;}NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;if(httpResponse.statusCode==200||httpResponse.statusCode==304){//解析數(shù)據(jù)id json =[NSJSONSerialization JSONObjectWithData:data options:nil error:NULL];NSLog(@"%@",json);}else{NSLog(@"服務(wù)器內(nèi)部錯(cuò)誤");}}];}-(void)uploadFile1{NSURL *url =[NSURL URLWithString:@"http://localhost:8080/MJServer/upload"];NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];request.HTTPMethod=@"post";[request setValue:[NSString stringWithFormat:@"multipart/form-data;boundary=%@",kBOUNDARY] forHTTPHeaderField:@"Content-Type"];request.HTTPBody=[self makeBody];[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {if(connectionError){NSLog(@"連接錯(cuò)誤 %@",connectionError);return;}NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;if(httpResponse.statusCode==200||httpResponse.statusCode==304){//解析數(shù)據(jù)id json =[NSJSONSerialization JSONObjectWithData:data options:nil error:NULL];NSLog(@"%@",json);}else{NSLog(@"服務(wù)器內(nèi)部錯(cuò)誤");}}];}-(NSData *)makeBody:(NSString *)fieldNamefilePath:(NSString *)filePath{NSMutableData *mData=[NSMutableData data];NSMutableString *mString=[NSMutableString string];[mString appendFormat:@"--%@\r\n",kBOUNDARY];[mString appendFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n",fieldName,[filePath lastPathComponent]];[mString appendString:@"Content-Type: application/octet-stream\r\n"];[mString appendString:@"\r\n"];[mData appendData:[mString dataUsingEncoding:NSUTF8StringEncoding]];//第二部分// 加載文件// NSString *path =[[NSBundle mainBundle] pathForResource:@"07.jpg" ofType:nil];NSData *data =[NSData dataWithContentsOfFile:filePath];[mData appendData:data];NSString *end=[NSString stringWithFormat:@"\r\n--%@--",kBOUNDARY];[mData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];return mData.copy;}-(NSData *)makeBody{NSMutableData *mData=[NSMutableData data];NSMutableString *mString=[NSMutableString string];[mString appendFormat:@"--%@\r\n",kBOUNDARY];[mString appendString:@"Content-Disposition: form-data; name=\"file\"; filename=\"07.jpg\"\r\n"];[mString appendString:@"Content-Type: image/jpeg\r\n"];[mString appendString:@"\r\n"];[mData appendData:[mString dataUsingEncoding:NSUTF8StringEncoding]];//第二部分// 加載文件NSString *path =[[NSBundle mainBundle] pathForResource:@"07.jpg" ofType:nil];NSData *data =[NSData dataWithContentsOfFile:path];[mData appendData:data];NSString *end=[NSString stringWithFormat:@"\r\n--%@--",kBOUNDARY];[mData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];return mData.copy;} @end總結(jié)
以上是生活随笔為你收集整理的IOS开发基础之单文件上传基础最原始的方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux目录架构详解
- 下一篇: 图解CPU发展史