7.AFNetworking實(shí)現(xiàn)圖片上傳

前言

1.在iOS開(kāi)發(fā)的工作我們經(jīng)常使用的圖片上傳這個(gè)功能,前面我們提到了使用NSURLSessionUploadTask+NSURLSesionDelegate去實(shí)現(xiàn)圖片的上傳功能,
感覺(jué)那個(gè)拼接的文件的路徑太麻煩了,現(xiàn)在感覺(jué)使用AFNetworking封裝好的
上傳圖片的功能挺好的??!

1.圖片上傳的代碼:

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"multipart/form-data", @"application/json", @"text/html", @"image/jpeg", @"image/png", @"application/octet-stream", @"text/json", nil];
    [manager POST:@"nurl" parameters:@"paramter" constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
       // formData: 專門用于拼接需要上傳的數(shù)據(jù),在此位置生成一個(gè)要上傳的數(shù)據(jù)體
       //這里可以用作多個(gè)圖片上傳加一個(gè)數(shù)組就Ok
        // 在網(wǎng)絡(luò)開(kāi)發(fā)中,上傳文件時(shí),是文件不允許被覆蓋,文件重名
        // 要解決此問(wèn)題,
        // 可以在上傳時(shí)使用當(dāng)前的系統(tǒng)事件作為文件名
        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
        formatter.dateFormat = @"yyyyMMddHHmmss";
        NSString *str = [formatter stringFromDate:[NSDate date]];
        NSString *fileName = [NSString stringWithFormat:@"%@.jpg",str];
        UIImage *phone = [[UIImage alloc]init];
        //壓縮下
        NSData *imageData =UIImageJPEGRepresentation(phone, 0.5);
        /*
         *該方法的參數(shù)
         1. appendPartWithFileData:要上傳的照片[二進(jìn)制流]
         2. name:對(duì)應(yīng)網(wǎng)站上[upload.php中]處理文件的字段(比如upload)
         3. fileName:要保存在服務(wù)器上的文件名
         4. mimeType:上傳的文件的類型
         */
        [formData appendPartWithFileData:imageData name:@"upload" fileName:fileName mimeType:@"image/jpeg"];
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        NSLog(@"上傳的進(jìn)度了");
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"success");
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"failure");
    }];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容