圖片上傳

項(xiàng)目中用到圖片上傳, 本來準(zhǔn)備使用AFN 的 但是發(fā)現(xiàn)用AFN 后臺(tái)接收不到圖片流.
就自己用系統(tǒng)自帶的網(wǎng)絡(luò)庫寫了個(gè)上傳圖片的請求

// 1.創(chuàng)建Session
    NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:actoion delegateQueue:[NSOperationQueue mainQueue]];
    
    NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://172.16.151.152:8080/picServer/pic/upload"]];
    [request addValue:@"image/jpeg" forHTTPHeaderField:@"Content-Type"];
    [request addValue:@"text/html" forHTTPHeaderField:@"Accept"];
    [request addValue:@"Application/Json" forHTTPHeaderField:@"Accept"];
    [request setHTTPMethod:@"POST"];
    [request setCachePolicy:NSURLRequestReloadIgnoringCacheData];
    [request setTimeoutInterval:20];
    NSData * imageData = UIImageJPEGRepresentation(img,0.8);
    NSString *picStr = [NSString stringWithFormat:@"%@%@|",LYUserDefaultForKey(userAccountKey),name];
    
    NSData *picName = [picStr dataUsingEncoding:NSUTF8StringEncoding];
    
    NSMutableData *mData = [NSMutableData dataWithData:picName];
    [mData appendData:imageData];
    
    
    NSURLSessionUploadTask * uploadTask = [session uploadTaskWithRequest:request fromData:mData completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        
        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

        loadResult(dict);

    }];
    
//    uploadTask.
    [uploadTask resume];

如果需要監(jiān)控上傳的進(jìn)度那就需要設(shè)置代理對象, 遵守NSURLSessionTaskDelegate協(xié)議

- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend
{
    //    NSLog(@"didSendBodyData");
    NSLog(@"+++++%f", 1.0 * totalBytesSent / totalBytesExpectedToSend);

}

注: 如果上傳有問題, 那么可能請求頭設(shè)置有問題, 那么就可以用青花瓷, 抓上送報(bào)文, 就可以看到, 那個(gè)請求頭設(shè)置錯(cuò)誤就會(huì)有提示.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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