1. 程式人生 > >ios檔案,圖片上傳伺服器

ios檔案,圖片上傳伺服器

- (void)upload:(NSString *)name filename:(NSString *)filename mimeType:(NSString *)mimeType data:(NSData *)data parmas:(NSDictionary *)params
 {
         // 檔案上傳
         NSURL *url = [NSURLURLWithString:@"http://123.57.89.97:7070/t2o/app/member/modifyFace"];
         NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
         request.HTTPMethod 
[email protected]
"POST"; // 設定請求體 NSMutableData *body = [NSMutableDatadata]; /***************檔案引數***************/ // 引數開始的標誌 [body appendData:YYEncode(@"--YY\r\n")]; // name : 指定引數名(必須跟伺服器端保持一致) // filename : 檔名 NSString *disposition = [NSStringstringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", name, filename]; [body appendData:YYEncode(disposition)]; NSString *type = [NSStringstringWithFormat:@"Content-Type: %@\r\n", mimeType]; [body appendData:YYEncode(type)]; [body appendData:YYEncode(@"\r\n")]; [body appendData:data]; [body appendData:YYEncode(@"\r\n")]; /***************普通引數***************/ [params enumerateKeysAndObjectsUsingBlock:^(id key,id obj, BOOL *stop) { // 引數開始的標誌 [body appendData:YYEncode(@"--YY\r\n")]; NSString *disposition = [NSStringstringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n", key]; [body appendData:YYEncode(disposition)]; [body appendData:YYEncode(@"\r\n")]; [body appendData:YYEncode(obj)]; [body appendData:YYEncode(@"\r\n")]; }]; /***************引數結束***************/ // YY--\r\n [body appendData: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:request queue:[NSOperationQueuemainQueue] completionHandler:^(NSURLResponse *response,NSData *data, NSError *connectionError) { if (data) { NSDictionary *dict = [NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingMutableLeaveserror:nil]; NSLog(@"上傳成功========%@", dict); } else { NSLog(@"上傳失敗"); } }]; } NSDictionary * dic = [NSDictionarydictionaryWithObjectsAndKeys:myDelegate.MEMBER_ID,@"MEMBER_ID",nil]; [selfupload:@"face"filename:@"picker.png"mimeType:@"image/png"data:data parmas:dic]; self upload:<#(NSString *)#> filename:<#(NSString *)#> mimeType:<#(NSString *)#> data:<#(NSData *)#> parmas:<#(NSDictionary *)#>


 圖片引數  -  圖片名  - 型別 -- 本地圖片路徑 - - 其它引數

1、在iOS開發中,圖片上傳的請求體非常難寫,格式要求非常嚴格,出一點錯誤都會造成上傳失敗,或請求資料失敗,先看格式:

--Boundary+72D4CD655314C423 Content-Disposition: form-data; name="uploadFile"; filename="001.png" Content-Type:image/png Content-Transfer-Encoding: binary ... contents of boris.png ...
--Boundary+72D4CD655314C423-- 這是一個不帶其他任務引數,body中只有一張圖就要寫成這樣 分別說明一下: --Boundary+72D4CD655314C423   // 分割符,以“--”開頭,後面的字隨便寫,只要不寫中文即可 Content-Disposition: form-data; name="uploadFile"; filename="001.png"  // 這裡註明伺服器接收圖片的引數(類似於接收使用者名稱的userName)及伺服器上儲存圖片的檔名 Content-Type:image/png  // 圖片型別為png Content-Transfer-Encoding: binary  // 編碼方式   // 這裡是空一行,必不可少!! ... contents of boris.png ...  // 圖片資料部分 --Boundary+72D4CD655314C423--  // 分隔符後面以"--"結尾,表明結束 2、如果有其他表單資料,如傳使用者ID等引數,也要寫成以上格式: --Boundary+72D4CD655314C423 Content-Disposition: form-data; name="userId" 254 --Boundary+72D4CD655314C423 Content-Disposition: form-data; name="shopId" 18718
- (void)upload { NSString*urlStr = @"http://localhost/upload.php"; NSMutableURLRequest*request = [NSMutableURLRequestrequestWithURL:[NSURLURLWithString:urlStr] cachePolicy:0 timeoutInterval:5.0f]; [selfsetRequest:request]; NSLog(@"開始上傳..."); [NSURLConnectionsendAsynchronousRequest:request queue:[[NSOperationQueuealloc] init] completionHandler:^(NSURLResponse*response, NSData*data, NSError*connectionError) { NSLog(@"Result--%@", [[NSStringalloc] initWithData:data encoding:NSUTF8StringEncoding]); }]; } - (void)setRequest:(NSMutableURLRequest*)request { NSString*boundary = [NSStringstringWithFormat:@"Boundary+%08X%08X", arc4random(), arc4random()]; NSMutableData*body = [NSMutableDatadata]; // 表單資料 NSMutableDictionary*param = [[NSMutableDictionaryalloc] init]; [param setValue:@"254"forKey:@"empId"];

相關推薦

ios檔案圖片伺服器

- (void)upload:(NSString *)name filename:(NSString *)filename mimeType:(NSString *)mimeType data:(NSData *)data parmas:(NSDictionary *)p

Android實現檔案圖片以及服務端接收相關。

前面一篇文章寫了實現照相功能的一個例子,其實那個實現效果是個略縮圖。要檢視全圖就要先指定照片的存放路徑。以後我會修改那個文章。今天先說下圖片,檔案等上傳的實現。接著拿照片說事,光照完了不行還得往伺服器上傳。 我們做web開發的時候幾乎都是通過一個表單來實現上傳

微信小程式檔案圖片

1:xml <view style="margin-top: 20px" class="weui-flex">   <view style="width: 35%;font-size: 0.7em">證件照片</view>   <

Retrofit 2.0 超能實踐(三)輕鬆實現檔案/多圖片/Json字串

通過前兩篇姿勢的入門 通過對Retrofit2.0的前兩篇的基礎入門和案例實踐,掌握了怎麼樣使用Retrofit訪問網路,加入自定義header,包括加入SSL證書,基本的除錯基礎,coolkie同步,但很多需求需要檔案的上傳,今天主題就來分享怎麼

java httpclient檔案springmvc作為伺服器端接收檔案以及中檔名亂碼的解決方法

最近由於專案中需要一個檔案上傳(基於http)的功能,遇到一些問題,故寫此部落格防止後面遺忘。 檔案上傳功能需要一個客戶端,一個伺服器端,由於客戶端不是在前臺(jsp,html)觸發,而是在java中進行請求,於是採用的org.apache.commons.

檔案圖片Spring或SpringMVC框架

spring或springMVC框架圖片(檔案)上傳 頁面部分,用一個簡單的form表單提交檔案,將圖片或檔案提交到服務端。一個輸入框,用於輸入圖片的最終名稱,一個file檔案選擇,用於選擇圖片。 頁面程式碼如下: <form id="form1" &g

scala和java解壓zip的檔案到hdfs伺服器

之前一直使用的事java開發的,後來學習hadoop,spark以後,需要做一個解壓檔案到伺服器的例子,由於學習scala時間不長,故先用java程式碼寫出來,在改成scala的程式碼,過程中出現了很多問題,我將會在最後說明,請大家注意不要少了包。 環境宣告:windows

input file實現多選限制文件類型圖片前預覽功能

ava eight tag HA ont accep 多選 red 異常 限制上傳類型 & 多選:① accept 屬性只能與 <input type="file" /> 配合使用。它規定能夠通過文件上傳進行提交的文件類型。 ② multiple 屬性規

ftp伺服器和nginx伺服器圖片伺服器

一,下載安裝ftp伺服器(vsftpd) 1. 使用命令安裝vsftpd伺服器: [[email protected] /]# yum -y install vsftpd 2. 新增一個使用者: [[email protected] /]# adduser ftp

input[file]為空ios手機ajax表單失敗404408 錯誤碼

專案中,目前都儘量採用 ajax 上傳表單,然後根據返回值進行提示,感覺使用者體驗好點。 最近出現一個問題: 蘋果部分型號的手機,在微信中,完善個人資訊頁面,ajax上傳表單時,未選擇頭像,出現失敗問題。 檢視 nginx 返回 408、400 的錯誤,ajax 進入 error 回撥。 碰

使用pluploader圖片阿里oss

 頁面引入jquery 和 plupload.full.min.js(plupload.js) // 封裝ajax 給上傳圖片用 function reqAjax(cmd, data){ var deferred = $.Deferred(); $.ajax(

【hadoop】本地Eclipse編寫hadoop詞統計程式碼本地測試打包伺服器測試

環境準備 1、伺服器配置好hadoop2.7.3,詳細配置過程可參考 hadoop2.7.3環境配置 2、本地安裝好Eclipse,並配置好maven 3、本地解壓hadoop-2.7.3,並下載winutils.exe檔案放在自定義目錄下 本地Ecli

ajax 檔案post檔案ajax 提交 JSON 格式的資料

ajax簡介 前後臺做資料互動 前後端做資料互動的方式(三種):     (1)瀏覽器視窗輸入地址(get的方式)(2)form表單提交資料(3)ajax提交資料 特點 特點:  (1)非同步       非同步與同步的區別:同步是請求發過去,要等著迴應;非同步不

微信小程式圖片在java後端接收不到圖片的問題

在使用小程式的圖片上傳時,發現一直接收不到圖片,最後找到問題是Spring-mvc.xml配置檔案對圖片進行了預處理,所以導致沒有接收到。將配置檔案 <bean id="multipartResolver" class="or

nginx 訪問圖片伺服器出現403錯誤解決方案

近期在nginx+ftp搭建圖片上傳伺服器的時候,在瀏覽器訪問圖片路徑出現403錯誤,經蒐集各位大神的回答,整理以下內容: 大家可以按下面的介紹,一一排除自己的問題,歡迎大家指正! 1、首先檢視nginx的配置檔案 vi /usr/local/nginx/conf/ng

Java 檔案或者圖片下載

上傳和下載  以前覺得很簡單   印象中使用外掛實現上傳下載的  直到今天。。。。 今天看了一篇博文,內容是上傳下載功能,三個Java檔案(上傳功能,下載列表顯示功能,下載功能),三個jsp檔案(上傳頁面,下載列表顯示頁面,成功頁面)。 我本地測試過了,分享給你們,有問題你們提出來 加入Apache的

YII中Ueditor富文字編輯器檔案圖片的配置

將Ueditor整合到YII框架中後,參照editor_config.js中的toolbars中的內容,更改options中標籤可以給編輯器新增想要的功能: 因此要想新增檔案和圖片上傳功能,應該加入以下兩個標籤: 文字編輯器中便出現了對應的兩個選項: 但是點選上傳圖片按

Android開發:仿微信和QQ空間發說說相簿讀取、拍照、圖片裁剪和圖片伺服器等功能的實現

第一步:新增依賴包: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.2.1' compile project('

SpringBoot使用jQuery File Upload圖片伺服器回顯相關

FileUitl.java文字操作工具類/** * 讀取資料流生成圖片 * @param imageIo * @param path * @return */ public boolean base64ToImage(

Android開發:相簿讀取、拍照、圖片裁剪和圖片伺服器等功能的實現

修改日誌 2016.05.12 之前的程式存在兩個問題: 1)從相簿選擇的圖片如果比較大,會失敗; 2)無法拍照上傳照片。 修改了這兩個bug,之前的程式碼已經被覆蓋掉了,留著太誤人子弟了。同時修改了一下標題和文章的文字描述 拍照示意 相簿示