日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS关于图片上传

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS关于图片上传 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iOS上傳圖片有固定的格式?
需要把圖片的數據再request的HTTPBody中配置好

格式

/*

?? ? --Boundary+72D4CD655314C423 ? // 分割符,以“--”開頭,后面的字隨便寫,只要不寫中文即可

?? ? Content-Disposition: form-data; name="uploadFile"; filename="001.png"? //這里一定要記住filename = “fghhj.jpg”一定要有擴展名jpg或者別的 這里注明服務器接收圖片的參數(類似于接收用戶名的userName)及服務器上保存圖片的文件名

?? ? Content-Type:image/png? // 圖片類型為png

?? ? Content-Transfer-Encoding: binary? // 編碼方式

?? ? // 這里是空一行,必不可少!!

?? ? ... contents of boris.png ...? // 圖片數據部分

?? ? --Boundary+72D4CD655314C423--? // 分隔符后面以"--"結尾,表明結束

?? ? */

- (void)setMutableRequest:(NSMutableURLRequest *)request WithImage:(UIImage *)image Parameters:(NSDictionary *)paramerters {//構造分界線 boundaryNSString *boundary = [NSString stringWithFormat:@"upoad%d%d",arc4random(),arc4random()];//圖片數據NSData *imageData = UIImagePNGRepresentation(image);/*(image, 1);*//*--Boundary+72D4CD655314C423 // 分割符,以“--”開頭,后面的字隨便寫,只要不寫中文即可Content-Disposition: form-data; name="uploadFile"; filename="001.png" // 這里注明服務器接收圖片的參數(類似于接收用戶名的userName)及服務器上保存圖片的文件名Content-Type:image/png // 圖片類型為pngContent-Transfer-Encoding: binary // 編碼方式// 這里是空一行,必不可少!!... contents of boris.png ... // 圖片數據部分--Boundary+72D4CD655314C423-- // 分隔符后面以"--"結尾,表明結束*///請求頭NSMutableString *topStr = [NSMutableString string];//如果有參數,一定要先弄參數的NSMutableDictionary *mdic = paramerters.mutableCopy;[mdic setObject:[self getUserId] forKey:@"token"];NSArray *keys = [mdic allKeys];NSLog(@"%@",keys);for (int i = 0; i < keys.count; i++) {NSString *key = keys[i];//添加分界線,換行[topStr appendFormat:@"--%@\r\n",boundary];//添加字段名稱,換2行[topStr appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];//添加字段的值[topStr appendFormat:@"%@\r\n",mdic[key]];}NSLog(@"%@",topStr);// [topStr appendFormat:@"--%@\r\n",boundary]; // [topStr appendFormat:@"Content-Disposition: form-data; name=\"uploadFile\"; filename=\"%@\"\r\n",@"icon"]; // [topStr appendFormat:@"Content-Type:image/jpeg\r\n"]; // [topStr appendFormat:@"Content-Transfer-Encoding: binary\r\n\r\n"]; [topStr appendString:[NSString stringWithFormat:@"--%@\r\n",boundary]];[topStr appendString:[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"uploadFile\"; filename=\"%@\"\r\n",@"icon.png"]];[topStr appendString:[NSString stringWithFormat:@"Content-Type:image/png\r\n"]];[topStr appendString:[NSString stringWithFormat:@"Content-Transfer-Encoding: binary\r\n\r\n"]];//拼接數據NSMutableData *requestBody = [NSMutableData data];[requestBody appendData:[topStr dataUsingEncoding:NSUTF8StringEncoding]];[requestBody appendData:imageData];[requestBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];//結束部分[requestBody appendData:[[NSString stringWithFormat:@"--%@--",boundary] dataUsingEncoding:NSUTF8StringEncoding]];[request setHTTPMethod:@"POST"];[request setHTTPBody:requestBody];[request setValue:[NSString stringWithFormat:@"%zd", requestBody.length] forHTTPHeaderField:@"Content-Length"];// 設置頭部數據,指定了http post請求的編碼方式為multipart/form-data(上傳文件必須用這個)。[request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary] forHTTPHeaderField:@"Content-Type"];}

?

文件上傳請求數據格式

部分文件的type

?

AFNetWorking 上傳圖片

- (void)uploadImageWithUrl:(NSString *)urlimage:(UIImage *)imageParameters:(NSDictionary *)paramertersSuccess:(SuccessBlock)successErrorBlock:(ErrorBlock)errorBlock {WS(ws);AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];AFHTTPRequestOperation *op = [manager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {NSMutableDictionary *mdic = paramerters.mutableCopy;[mdic setObject:[ws getUserId] forKey:@"token"];//如果有參數NSArray *keys = [mdic allKeys];for (int i = 0; i < keys.count; i++) {NSString *key = keys[i];NSString *content = mdic[key];NSData *contenData = [content dataUsingEncoding:NSUTF8StringEncoding];//調用這個方法 [formData appendPartWithFormData:contenData name:key];}//配置圖片NSData *imageData = UIImagePNGRepresentation(image);NSDateFormatter *df = [[NSDateFormatter alloc]init];df.dateFormat = @"YYYYMMddHHmmss";NSString *fileName = [NSString stringWithFormat:@"%@.png",[df stringFromDate:[NSDate new]]];[formData appendPartWithFileData:imageData name:@"myfile" fileName:fileName mimeType:@"image/png"];} success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {if (success) {NSLog(@"%@",responseObject);}} failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {NSLog(@"%@",error);}];[op start]; }

?

轉載于:https://www.cnblogs.com/feiyudexingfu/p/4892031.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

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

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