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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

POST单文件上传

發布時間:2024/4/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POST单文件上传 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.單個文件上傳(四個步驟) 2.設置請求體格式

{

? ? 為什么要上傳文件:

?? ?

? ? - 以前很多服務器對上傳文件的大小有限制,PHP 限制是 2M

? ? - 目前很多服務器不僅不限制大小,而且鼓勵上傳多個文件!

? ? - 云服務器的普及!

? ? - 軟件商希望獲得更多的用戶數據!

?? ?

? ? 提示:abc 的目錄是用來保存上傳文件的,需要設置訪問權限!

?? ?

? ? <1> 文件上傳使用 POST 方法.

?? ?

? ? // 請求為可變請求

? ? NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

? ? // 制定請求方法為 POST

? ? request.HTTPMethod = @"POST";

?? ?

? ? <2> 設置請求頭,告訴服務器請求體中的內容包含文件參數.

? ? [request setValue:@"multipart/form-data; boundary=kBoundary" forHTTPHeaderField:@"Content-Type"];

?? ?

? ? <3> 設置請求體(注意:必須嚴格按照格式設置).

? ? {

? ? ? ? // 上邊界

? ? ? ? --boundary\r\n

? ? ? ? Content-Disposition: form-data; name=userfile; filename=555\r\n

? ? ? ? Content-Type: application/json\r\n\r\n

?? ? ? ?

?? ? ? ?

? ? ? ? 文件內容的二進制數據

?? ? ? ?

? ? ? ? // 下邊界

? ? ? ? \r\n--boundary--

?? ? ? ?

?? ? ? ?

? ? ? ? 注意1:請求體內容分為三個部分:

?? ? ? ?

? ? ? ? * 上邊界部分,告訴服務器要做數據上傳,包含了服務器的接收字段name=userfile,文件在服務器中保存的名稱filename=555,以及上傳文件的數據類型 application/json(需要嚴格按照字符串格式來設置)

?? ? ? ?

? ? ? ? * 上傳文件的數據部分(二進制數據)

?? ? ? ?

? ? ? ? * 下邊界部分,嚴格按照字符串格式來設置.

?? ? ? ?

? ? ? ? 上邊界部分和下邊界部分的字符串,最后都要轉換成二進制數據,和文件部分的二進制數據拼接在一起,作為請求體發送給服務器.

?? ? ? ?

?? ? ? ?

? ? ? ? 注意2:

?? ?

? ? ? ? * userfile => 負責上傳文件腳本中的 字段名,開發的時候,可以咨詢后端程序員

? ? ? ? * filename => 將文件保存在服務器上的文件名稱

? ? ? ? * Content-Type: 客戶端告訴服務器上傳文件的文件類型

?? ? ? ?

? ? ? ? 注意3:

?? ? ? ?

? ? ? ? * 每一行末尾需要有一定的 \r\n

? ? ? ? * 提示:有些服務器可以直接使用 \n,但是新浪微博如果使用 \n 上傳文件,服務器會返回沒有權限的錯誤!

?? ? ? ?

? ? }

?? ?

? ? <4> 發送請求( NSURLConnection異步發送請求)

? ? [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

? ? ? ? //

? ? ? ? NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

?? ? ? ?

? ? ? ? NSLog(@"%@",string);

? ? }];

?? ?

}

轉載于:https://www.cnblogs.com/xhc1263478959/p/4809267.html

總結

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

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