iOS 上傳圖片方法總結
開題:
iOS 開發中難免會遇到上傳圖片,一般情況下有兩種方式:
- 自己動手寫(利用NSURLMutableRequest等系統類)
- 使用第三方(如AFNetworking)
據我所經歷的,如果你不是大神,還是用第三方吧,自己寫的話會很麻煩,需要拼接一些請求頭,請求體等,就算弄好了也是廢了很多時間了;當然,費時間並不是我不推薦自己動手寫,因為在我現在接手的專案中,就是使用的自己寫的,上傳中會出現丟圖等各種問題,特別在網路不好的情況下;
面對這樣的上傳圖片,我的Boss 交給我了一個課題,就是改善上傳圖片的網路底層庫;看在我不是大神的份上,我就選擇了AFNetwoking;
So,對於自己動手實現的方法,在這裡我就不多寫了;接下來主要是AFNetwoking實現方法:
至於如何匯入第三方,我不多說,你是直接拉進也行,使用cocoapods也行;
進入正題:
以下是上傳圖片的方法:
+(void)uploadImageWithUrl:(NSString )strUrl dataParams:(NSMutableDictionary )dataParams imageParams:(NSMutableDictionary ) imageParams Success:(void(^)(NSDictionary resultDic)) success Failed:(void(^)(NSError *error))fail { NSArray *keys = [imageParams allKeys]; UIImage * image = [imageParams objectForKey:[keys firstObject]]; AFHTTPRequestOperationManager manager = [AFHTTPRequestOperationManager manager];//對SSL做處理,防止上傳失敗AFSecurityPolicy securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]; securityPolicy.allowInvalidCertificates = YES; securityPolicy.validatesDomainName = NO; manager.securityPolicy = securityPolicy; [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"]; manager.requestSerializer.timeoutInterval = 120; [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"]; [manager POST:strUrl parameters:dataParams constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { [formData appendPartWithFileData:UIImageJPEGRepresentation(image, 0.5) name:[keys firstObject] fileName:[NSString stringWithFormat:@"%@.jpeg",[keys firstObject]] mimeType:@"image/jpeg"]; } success:^(AFHTTPRequestOperation operation, id responseObject) { if (success) { success(responseObject); } } failure:^(AFHTTPRequestOperation operation, NSError *error) { if (fail) { fail(error); } }];}
接下來是如何呼叫:
-(void)uploadImageAction { NSString url = @"https://github.com/Ashen-Zhao"; NSMutableDictionary dpp =[@{@"token":@"zhaoshenshenazhao"} mutableCopy]; NSMutableDictionary pimgs= [@{@"file":[UIImage imageNamed:@"a.jpg"]} mutableCopy]; [NetworkEngine uploadImageWithUrl:url dataParams:dpp imageParams:pimgs Success:^(NSDictionary resultDic) { NSLog(@"%@", resultDic); } Failed:^(NSError *error) { }];}
引數說明:
- strUrl:上傳圖片的伺服器地址
- dataParams:資料引數(如token等)
- imageParams:圖片引數(字典中的object一定要是UIImage型別;當然我寫的是這樣,你也可以修改為其他)
- Success:上傳成功後的Block回撥(resultDic是伺服器返回的結果)
- Failed:上傳失敗後的Block回撥(error是錯誤結果)
以上就是AFNetworking上傳圖片的方法, 分享給大家一起學習,你也可以自己改造這個方法,如果你發現更好的方法,請留言給我或者發郵件給我[email protected];
相關推薦
iOS 上傳圖片方法總結
開題: iOS 開發中難免會遇到上傳圖片,一般情況下有兩種方式: 自己動手寫(利用NSURLMutableRequest等系統類)使用第三方(如AFNetworking)據我所經歷的,如果你不是大神,還是用第三方吧,自己寫的話會很麻煩,需要拼接一些請求頭,請求體等,就算弄好了也是廢了很多時間了;當然,費時間
建立 Js圖片上傳實現方法總結
$(function(){ $("#file_upload").uploadify({ 'auto':true, //是否為自動上傳 'swf':'/uploadify/uploadify.swf', //上傳的flash外掛 'u
iOS上傳圖片的方法
下面是圖片上傳的方法:-(void)loadImage:(NSString*)aurl{ NSData *imageData; NSMutableData *postBody; NSString
vue iOS上傳圖片file 出錯
前言 用vue 移動端上傳圖片在低版本的 ios 手機上 圖片轉換base64 在轉換file 檔案型別 會報錯 並且報錯 “Script Error ” 查閱了github 和一些文件發現 可以吧 file 改為 Blob 的 格式上傳,哈哈 上的程式碼 changeBa
vue iOS上傳圖片file 出錯
.com ret eat str hang inf ror urn github 前言 用vue 移動端上傳圖片在低版本的 ios 手機上 圖片轉換base64 在轉換file 文件類型 會報錯 並且報錯 “Script Error ” 查閱了github 和一些文檔發現
封裝axios和上傳圖片方法
頁面呼叫,post為例 this.$post(url, data, res => { if (res.code == 1) { -------成功返回資料 } else { console.lo
ssh 使用 wangeditor3 富文字編輯器上傳圖片方法
這段時間在搞一個小網站的專案,其中有個功能是可以網頁上編輯文字和圖片,能一起上傳到資料庫然後在頁面上展現,當然還可以上傳附件,不過我現在還沒弄好,先把上傳圖片的功能記錄一下。 說到這個wangeditor3富文字編輯器,只能說自己才疏學淺被搞得頭暈,花了將近三
TP5-上傳圖片方法
/* * 檢查base64編碼的圖片格式 */ function check_base64_img_string($img) { if (!isset($img)) { $msg = array( 'code
關於七牛雲上傳圖片的總結
public class QiniuService { private static final Logger logger = LoggerFactory.getLogger(QiniuService.class); //設定好賬號的ACCESS_KEY和SECR
ios上傳圖片到appstore時的尺寸大小
引導頁: 640 * 960 640 *1136 750 *1334 1080 *1920 啟動頁: 640 * 960 640 *1136 750 *1334 768 *1024 1242 *2208 1536 *2048 上傳appSto
JavaWeb 通過ios上傳圖片旋轉問題
今天遇到個問題,通過iphone上傳圖片到伺服器,後臺人員拿到的圖片是橫著的. 先說下原因,在網上查過很多資料,最終確定的原定是 用相機拍攝出來的照片含有EXIF資訊,UIImage的imageOrientation屬性指的就是EXI
python介面自動化上傳圖片方法
上傳圖片介面: # 檔案上傳:content-Type: multipart/form-data型別 import requests class SendFile(): def __init__(self, s): self.s = s
iOS上傳圖片到伺服器
下面是我封裝的方法標頭檔案 #import "AFHTTPSessionManager.h"1.上傳一張照片//上傳頭像-(void)sendPersonIcon:(NSData *)imgData Authorization:(NSString*)authorization
iOS 批量上傳圖片的 3 種方法
except 現在 文章 rap 鏈式調用 bsp 不知道 working truct AFNetworking 在去年年底升級到了 3.0。這個版本更新想必有很多好處,然而讓我吃驚的是,它並沒有 batch request 接口。之前的 1.x 版本、2.x 版本都實現
iOS 選取圖片 後臺給旋轉 多圖上傳 代理方法不執行
經歷了一個新的專案,也是一個新的團隊.圖片上傳,成了重點.1.圖片上傳伺服器之後,在獲取的時候被旋轉了90度. 解決辦法為:將回調的image物件進行如下處理,if (image.imageOrientation != UIImageOrientationUp)
iOS 拍照上傳慢,壓縮上傳圖片---你沒有想到的解決方法
上傳圖片的正確方式:上傳圖片到伺服器一般是將圖片NSData上傳到伺服器,伺服器返回一個圖片NSString地址,之後再將NSString的路徑轉為url並通過url請求去更新圖片(圖片此時更新的便是NSString)上傳的圖片一般壓縮方式是: NSData *eachImg
百度編輯器在服務器置頂路徑 解決上傳圖片創建目錄失敗的方法(Thinkphp)
插入 borde images tor true ges border name 線上 1、設置文件夾權限2、修改/* 前後端通信相關的配置,註釋只允許使用多行方式 */{ /* 上傳圖片配置項 */ "imageActionName": "uploadimag
接收IOS上傳的圖片
sys 控制器 base 移動端 參數 array request clas div 感謝我的ABP群的大佬。提供的寶貴提醒。 這雞掰煩了我幾周了。 起因,我的前端先DTO接收方式的參數要的太多(直接索要HttpPostedFileBase類型數據),要我精簡。ABP的AP
kindedit編輯器修改圖片上傳限制方法
圖片 編輯器 河北 修改這個編輯器的圖片上傳大小限制,有時我們修改了很多參數,都不管用,如修改multiimage.js修改了其中的上傳配置參數還是傳不上圖片 後來經過魅力網絡的測試,通過批量查找代碼查詢max_size找到一個文件upload_json.php 看見參數我在最大文件
iOS Post上傳圖片, 文件流的形式
ssi 標準 請求 圖片服務器 dict html mimetype object 屬性 最近看到群裏很多小夥伴有問上傳圖片服務器收不到, 解析不了. 可以說就一個屬性 ContentType , 不論你使用第三方的AFN, 還是自己封裝NSURLSesstion. 都