1. 程式人生 > >iOS 上傳圖片方法總結

iOS 上傳圖片方法總結

開題:

iOS 開發中難免會遇到上傳圖片,一般情況下有兩種方式:

  1. 自己動手寫(利用NSURLMutableRequest等系統類)
  2. 使用第三方(如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. 都