iOS開發-NSURLSession檔案上傳
一、NSURLSession實現檔案上傳
(1)實現檔案上傳的方法
/*
第一個引數:請求物件
第二個引數:請求體(要上傳的檔案資料)
block回撥:
NSData:響應體
NSURLResponse:響應頭
NSError:請求的錯誤資訊
*/
NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request
fromData:data completionHandler:^(NSData * __nullable data,
NSURLResponse * __nullable response,
NSError * __nullable error)
(2)設定代理,在代理方法中監聽檔案上傳進度
/*
呼叫該方法上傳檔案資料
如果檔案資料很大,那麼該方法會被呼叫多次
引數說明:
totalBytesSent:已經上傳的檔案資料的大小
totalBytesExpectedToSend:檔案的總大小
*/
-(void)URLSession:(nonnull NSURLSession *)session
task:(nonnull NSURLSessionTask *)task
didSendBodyData:(int64_t)bytesSent
totalBytesSent:(int64_t)totalBytesSent
totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend
{
NSLog(@"%.2f",1.0 * totalBytesSent/totalBytesExpectedToSend);
}
(3)關於NSURLSessionConfiguration相關 (" 具體內容請看 'AFNetworking框架基本使用' 相關介紹! ")
01 作用:可以統一配置NSURLSession,如請求超時等
02 建立的方式和使用
//建立配置的三種方式
+ (NSURLSessionConfiguration *)defaultSessionConfiguration;
+ (NSURLSessionConfiguration *)ephemeralSessionConfiguration;
+ (NSURLSessionConfiguration *)backgroundSessionConfigurationWithIdentifier:(NSString *)identifier NS_AVAILABLE(10_10, 8_0);
//統一配置NSURLSession
-(NSURLSession *)session
{
if (_session == nil) {
//建立NSURLSessionConfiguration
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
//設定請求超時為10秒鐘
config.timeoutIntervalForRequest = 10;
//在蜂窩網路情況下是否繼續請求(上傳或下載)
config.allowsCellularAccess = NO;
_session = [NSURLSession sessionWithConfiguration:config
delegate:self delegateQueue:[NSOperationQueue mainQueue]];
}
return _session;
}
相關文章
- iOS 開發之 NSURLSession 下載和斷點續傳iOSSession斷點
- 微信開發 檔案上傳
- 玩轉 iOS 開發:NSURLSession 講解 (一)iOSSession
- iOS開發 GET、POST請求方法:NSURLSession篇iOSSession
- php檔案上傳之多檔案上傳PHP
- PHP開發之檔案的上傳下載PHP
- 單個檔案上傳和批量檔案上傳
- 檔案上傳
- SpringMVC 單檔案上傳與多檔案上傳SpringMVC
- iOS開發:建立pch檔案iOS
- 快速開始api開發(六)檔案上傳,設定頭像API
- Java大檔案上傳、分片上傳、多檔案上傳、斷點續傳、上傳檔案minio、分片上傳minio等解決方案Java斷點
- 檔案上傳之三基於flash的檔案上傳
- 前端大檔案上傳/分片上傳前端
- ios網路學習------10 原生API檔案上傳iOSAPI
- Flask——檔案上傳Flask
- PHP上傳檔案PHP
- JavaScript 檔案上傳JavaScript
- Git上傳檔案Git
- YII檔案上傳
- 檔案上傳概述
- beego上傳檔案Go
- 上傳檔案流程
- 上傳EXCLE檔案
- PHP 檔案上傳PHP
- 檔案上傳漏洞
- MVC檔案上傳 - 使用Request.Files上傳多個檔案MVC
- .NET Core 如何上傳檔案及處理大檔案上傳
- Vue+axios+Node+express實現檔案上傳(使用者頭像上傳)VueiOSExpress
- 【巴山】Asp.NET大檔案上傳元件開發總結(二)---提取檔案內容ASP.NET元件
- Django檔案上傳 -- 適用於單一小檔案上傳Django
- 基於React的大檔案上傳元件的開發詳解React元件
- 上傳檔案的陷阱
- HTTP檔案上傳原理HTTP
- 上傳檔案專題
- PHP 分片上傳檔案PHP
- Java Web 檔案上傳JavaWeb
- WEB漏洞——檔案上傳Web