iOS原生api post上傳圖片,上傳視訊
我之前在做檔案上傳的時候,不想用第三方的,於是就寫了一個簡單的圖片上傳方法
------------.h檔案裡面寫一個這樣方法-------
/**
* 非同步上傳檔案,視訊,圖片
*
* @param name 名字 這個名字是和後臺協定好的關鍵字
* @param filename 上傳檔案的名字
* @param mimeType 上傳檔案型別
* @param data 檔案流資料
* @param upurl 上傳路徑
* @param params 上傳引數
* @param complete block回撥
*/
+(void)upload:(NSString *)name filename:(NSString *)filename mimeType:(NSString *)mimeType data:(NSData *)data upUrl:(NSString *)upurl parmas:(NSDictionary *)params complete:(void(^)(NSDictionary *dict))complete;
------------.m檔案裡面實現這個這樣方法-------
#define YYEncode(str) [str dataUsingEncoding:NSUTF8StringEncoding]
+(void)upload:(NSString *)name
filename:(NSString *)filename mimeType:(NSString*)mimeType
data:(NSData *)data upUrl:(NSString *)upurl
parmas:(NSDictionary *)params complete:(void(^)(NSDictionary *dict))complete;{
NSLog(@"開始上傳===================");
// 檔案上傳
NSURL *url = [NSURLURLWithString:upurl];
NSLog(@"地址===========%@%@",upurl,params);
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
request.HTTPMethod =@"POST";
// 設定請求體
NSMutableData *body = [NSMutableDatadata];
/***************檔案引數***************/
// 引數開始的標誌
[bodyappendData:YYEncode(@"--YY\r\n")];
// name : 指定引數名(必須跟伺服器端保持一致)
// filename : 檔名
NSString *disposition = [NSStringstringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", name, filename];
[bodyappendData:YYEncode(disposition)];
NSString *type = [NSStringstringWithFormat:@"Content-Type: %@\r\n", mimeType];
[bodyappendData:YYEncode(type)];
[bodyappendData:YYEncode(@"\r\n")];
[bodyappendData:data];
[bodyappendData:YYEncode(@"\r\n")];
/***************普通引數***************/
[paramsenumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop) {
// 引數開始的標誌
[bodyappendData:YYEncode(@"--YY\r\n")];
NSString *disposition = [NSStringstringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n", key];
[bodyappendData:YYEncode(disposition)];
[bodyappendData:YYEncode(@"\r\n")];
[bodyappendData:YYEncode(obj)];
[bodyappendData:YYEncode(@"\r\n")];
}];
/***************引數結束***************/
// YY--\r\n
[bodyappendData:YYEncode(@"--YY--\r\n")];
request.HTTPBody = body;
// 設定請求頭
// 請求體的長度
[request setValue:[NSStringstringWithFormat:@"%zd", body.length]forHTTPHeaderField:@"Content-Length"];
//宣告這個POST請求是個檔案上傳
[request setValue:@"multipart/form-data; boundary=YY"forHTTPHeaderField:@"Content-Type"];
// 傳送請求
[NSURLConnectionsendAsynchronousRequest:requestqueue:[NSOperationQueuemainQueue]completionHandler:^(NSURLResponse *response,NSData *data,NSError *connectionError) {
if (data) {
NSDictionary *dict = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableLeaveserror:nil];
NSLog(@"-----------------%@", dict);
NSLog(@"上傳成功");
complete(dict);
}else {
NSLog(@"上傳失敗");
}
}];
}
-----------這個方法的使用----------------------
NSMutableDictionary *param = [[NSMutableDictionaryalloc]init];//引數字典
//下面五個是引數,根據實際情況而定
[param setValue:dep forKey:@"description"];
[param setValue:_gpsString forKey:@"addr"];
NSLog(@"gpsstring==========%@",_gpsString);
[param setValue:_circleid forKey:@"circleId"];
[param setValue:userId forKey:@"userId"];
[param setValue:phoneNumber forKey:@"phoneNumber"];
NSString *name=@"userImg";//這個名字和後臺商量好了
NSString *filename=@"images.jpg";//上傳後的名字
NSString *mimeType=@"image/jpeg";//上傳型別
NSString *upurl=[NSString stringWithFormat:@"%@/%@",IP,UPDATA_USER_HEAD_IMG];
//上傳路徑,你們自己的路徑
NSData *data = [NSData dataWithContentsOfFile:fullPath];//data資料流,圖片的路徑
/*
如果是上傳視訊的話
NSData *data = [NSData dataWithContentsOfFile:fullPath];
//data資料流fullPath就是儲存視訊的路徑
NSString *[email protected]"fileVideo";(和後臺保持一致)
NSString *[email protected]"videos.mp4";
NSString *[email protected]"video/mp4";//(視訊和圖片的格式有多種,這裡就不舉例了)
*/
//下面是上傳方法
[Uploadupload:namefilename:filenamemimeType:mimeTypedata:dataupUrl:upurlparmas:paramcomplete:^(NSDictionary *dict) {
if ([[dictobjectForKey:@"status"]isEqualToString:@"0"]) {
NSLog(@"上傳頭像成功");
NSString * userImg=[dictobjectForKey:@"userImg"];
[appDelegate.appDefaultsetObject:userImgforKey:@"imgPath"];
//建立通知
NSNotification *notification =[NSNotificationnotificationWithName:@"updateHeadImgtongzhi"object:niluserInfo:nil];
//通過通知中心傳送通知
[[NSNotificationCenterdefaultCenter]postNotification:notification];
}
}];
相關推薦
iOS原生api post上傳圖片,上傳視訊
我之前在做檔案上傳的時候,不想用第三方的,於是就寫了一個簡單的圖片上傳方法 ------------.h檔案裡面寫一個這樣方法------- /** * 非同步上傳檔案,視訊,圖片 * * @param name 名字 這個名字是和後臺
使用最原始的http-post方式上傳圖片 ,上傳工具類已封裝 可直接使用
// 上傳工具類的 .h檔案 #import <Foundation/Foundation.h> @interface IMPhotoPostTool : NSObject + (NSMutableURLRequest *)upload:(NSString *
nodejs express 框架 上傳圖片,上傳頭像問題
上傳圖片總結: 必須 安裝’multer’模組 Npm I multer –S(手動輸入小寫) 第一步 App.js 裡面 掛載index路由之前寫入 app.use(express.static(path.join(__dirname, 'public'))); var mul
ueditor 自定義上傳圖片,上傳圖片自定義
越來越不想寫部落格了,真的是累!好了,廢話不多說,進入正題。前臺:既然你們都走到這裡來了,那麼前面的就不在多說了,直接進去配置好的頁面。<script type="text/javascript"> var ue = UE.getEditor('editor'
php 中使用cURL發送get/post請求,上傳圖片,批處理
cit gda 抓取 記錄 rem 學習 網頁 lose XML https://mp.weixin.qq.com/s/8luqMEd8xt8oJxFLLCU1XA 文章正文 cURL是利用url語法規定傳輸文件和數據的工具。php中有curl拓展,一般用來實現網絡抓取,模
iOS整合七牛雲(上傳圖片,視訊,音訊等檔案)
用的CocoaPods匯入SDK platform :ios,'9.0' target '專案名' do pod 'AFNetworking' pod 'Qiniu' end 匯入標頭檔案 #import<QiniuSDK.h> #i
010-java 表單方式或者base64方式上傳圖片,後端使用nutz的post轉發圖片到另一個請求
本地上傳圖片 方式一、使用表單方式上傳-enctype <form enctype="multipart/form-data" method="post" action="http://face.lhx.com/auth" id='formBox' name="form">
使用springmvc 接收上傳圖片,在 手機 ios 上,有圖片上傳就不報錯, 沒有就報下面這個錯誤,然後在pc端跟安卓手機上就不會有這個錯誤,這是為什麼呢?
七月 18, 2018 4:04:22 下午 org.apache.catalina.core.StandardWrapperValve invoke 嚴重: Servlet.service() for servlet [springMVC] in context with
IOS 利用AFN上傳圖片,支援多張、單張上傳
前言:本文主要利用AFN來進行圖片上傳,支援單張、多張; 個人覺得導致上傳失敗的原因,大部分情況下都是由於 [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"upload
使用 CKEditor 上傳圖片, 粘貼屏幕截圖
要求 license 回調 wan ade 做成 操作 rms 粘貼 之前寫過wangEditor,那真是好用,文檔也清晰,半天就搞定了,無奈沒有對應license,只好選擇別的。 外語一般,閱讀理解都靠蒙。CKEditor官方文檔看的我雲裏霧裏,國內的博客比較少,
百度WebUploader上傳圖片,圖片回顯編輯,查看
set 唯一性 original 無需 同名 sch nag fin enum 頁面前端使用的是bootstrap,java後端springMVC , 上傳用的WebUploader,先說說上傳圖片,回顯編輯圖片在下一篇 如果僅僅只需要上傳圖片,不需要回顯進行編輯圖片,使用
html 上傳圖片,本頁預覽
html 上傳圖片 本頁預覽 直接上代碼<!DOCTYPE html><html><head><meta charset="UTF-8"><title>圖片上傳預覽</title><script type="text/j
vue, vux調用微信點擊圖片,上傳圖片,刪除圖片,接口,其中選圖接口,蘋果手機顯示有問題,查看不到圖片,提交會提示fail not exist,解決如下
ssd fff sset ogre 默認 item config tom ima <template> <div v-cloak v-show="show"> <div v-show="mailbox">
C# 使用FileUpload控件上傳圖片,將文件轉換成二進制進行存儲與讀取
擴展 實現 bmi extension aaa 插入數據 問題 pup cat 狀況描述: 需要上傳文件,但是不想要保存到實體路徑下,便可以用該功能來實現。 效果圖: 點擊【Upload】按鈕,上傳文件到數據庫; 點擊【Preview】,預覽文件;
微信jssdk上傳圖片,一張一張的上傳 和 一次性傳好幾張
pla can 參數錯誤 其他 屬性 使用 down pop menu //html模板 <div class="zhaopin_3_2"> <div id="bbb"></div> &
小程序上傳圖片,排隊上傳
length 內容 ext 有效 ges mar 顯示 func 沒有 //沒有處理的wxml,但是有效果,可以簡單試驗一下 <view class=‘minbox1‘> <text class=‘red wzgs‘>*</text>
微信小程式上傳圖片,視訊及預覽
wxml <!-- 圖片預覽 --> <view class='preview-warp' wx:if="{{urls}}"> <image src='{{urls}}' /> </view> <view class="prew_video"
layer 彈框 cropper 裁剪上傳圖片,thinkphp 3 使用 CropAvatar.class.php
最近要做一個上傳裁剪圖片功能,但是網上收出來的東西,知識點都是對的。但是就是沒說清楚,也無法連續起來用。 經過自己整理出來的一套程式碼,親測可用! 不用多說,直接上菜。 PS:搜尋引擎收錄的還是很垃圾...... 呼叫頁面,簡單程式碼(可複用) <img src="{$info.co
layui-圖片上傳,可使用選擇圖片->上傳圖片,預覽圖片,刪除圖片(轉載)
原文地址:https://gitee.com/AMortal/codes/qt8m6zk30u1g4evr95jhx13 <!DOCTYPE html> <html> <head> <meta
利用ajax上傳圖片,並使用CURL呼叫介面
這是我第一次使用ajax上傳檔案,並且不通過form表單進行上傳,之前使用ajax上傳檔案時是藉助一個叫form.js的檔案,可以直接使用$.ajaxSumbmit直接提交表單,但這次不同,就是使用ajax上傳,並且將圖片資訊放在ajax要上傳的資料data陣列或物件中,怎麼