日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Swift中文件和图片上传处理

發布時間:2023/12/13 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Swift中文件和图片上传处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:基于Alamofire4.5網絡框架開發的Swift項目中上傳文件和圖片代碼參考。

上傳文件

extension HttpRequestService {typealias UploadDoneBlock = (_ dict:[String : Any]) -> Void//成功blockfunc uploadEcgFileWithGatherRecord(model :RecordModel, fileName : String, zipData : NSData, md5 : String, success:@escaping UploadDoneBlock, fail:@escaping FailedBlock) {let urlStr = HttpConfig.RequestUrlHeader.httpRequestUrlHeader + HttpConfig.RequestApi.uploadRecordApi//構造發送參數let parameters: Parameters = ["user_id":model.userId]//請求頭let localToken = Tools.readFromUserDefault(key: localToken)!// 頭部需要的內容包裝let headers: HTTPHeaders = [ "Accept": "application/json;charset=utf-8","lang":"en-US","token": localToken]Alamofire.upload(multipartFormData: { (formData) in// "fname" 這里是服務器對應好的字段formData.append(zipData as Data, withName: "fname", fileName: fileName, mimeType:"application/zip")//拼接參數for (key, value) in parameters {let v = value as! StringformData.append(v.data(using: String.Encoding.utf8)!, withName: key)} // usingThreshold 指的是傳入文件大小最大值}, usingThreshold: (50*1024*1024), to: URL.init(string: urlStr)!, method: HTTPMethod.post, headers: headers) { (encodingResult) inswitch encodingResult {case .success(let upload, _, _):upload.responseJSON { response inif let jsonValue = response.result.value {let json = JSON(jsonValue)print("上傳記錄json:\(json)")let code = json["code"].intif code == HttpConfig.ErrorCode.HttpOK {let dict = json["data"].dictionaryObjectsuccess(dict!) } else {fail("")}}}case .failure(_):self.networkErrorHint() // 網絡錯誤處理 }}} 復制代碼

圖片上傳

typealias UploadUserIconSuccess = (_ dict:[String : Any]) -> Void//成功blockfunc uploadUserIcon(fileName: String, imgData: NSData, success:@escaping UploadUserIconSuccess, fail:@escaping FailedBlock ) {let urlStr = HttpConfig.RequestUrlHeader.httpRequestUrlHeader + HttpConfig.RequestApi.uploadUserIconApi//請求頭let localToken = Tools.readFromUserDefault(key: localToken)!// 頭部需要的內容包裝let headers: HTTPHeaders = [ "Accept": "application/json;charset=utf-8","lang":"en-US","token": localToken]Alamofire.upload(multipartFormData: { (formData) in// 參數解釋://withName:和后臺服務器的name要一致 ;fileName:可以充分利用寫成用戶的id,但是格式要寫對; mimeType:規定的,要上傳其他格式可以自行百度查一下formData.append(imgData as Data, withName: "fname", fileName: fileName, mimeType:"image/jpeg")//如果需要上傳多個文件,就多添加幾個append,或則for-in語句進行循環處理 // formData.append(imgData as Data, withName: "fname", fileName: fileName, mimeType:"image/jpeg") // formData.append(imgData as Data, withName: "fname", fileName: fileName, mimeType:"image/jpeg")}, usingThreshold: (10*1024*1024), to: URL.init(string: urlStr)!, method: HTTPMethod.post, headers: headers) { (encodingResult) inswitch encodingResult {case .success(let upload, _, _):upload.responseJSON { response inif let jsonValue = response.result.value {let json = JSON(jsonValue)print("上傳頭像json:\(json)")let code = json["code"].intif code == HttpConfig.ErrorCode.HttpOK {let dict = json["data"].dictionaryObjectsuccess(dict!)} else {let msg = json["msg"].stringHudToast.toastError(error: msg!)}}}case .failure(_):self.networkErrorHint()}}} 復制代碼

轉載于:https://juejin.im/post/5d4d6a83e51d453b721475fa

總結

以上是生活随笔為你收集整理的Swift中文件和图片上传处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。