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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

POST单文件上传

發(fā)布時(shí)間:2024/4/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POST单文件上传 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.單個(gè)文件上傳(四個(gè)步驟) 2.設(shè)置請(qǐng)求體格式

{

? ? 為什么要上傳文件:

?? ?

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

? ? - 目前很多服務(wù)器不僅不限制大小,而且鼓勵(lì)上傳多個(gè)文件!

? ? - 云服務(wù)器的普及!

? ? - 軟件商希望獲得更多的用戶(hù)數(shù)據(jù)!

?? ?

? ? 提示:abc 的目錄是用來(lái)保存上傳文件的,需要設(shè)置訪問(wèn)權(quán)限!

?? ?

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

?? ?

? ? // 請(qǐng)求為可變請(qǐng)求

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

? ? // 制定請(qǐng)求方法為 POST

? ? request.HTTPMethod = @"POST";

?? ?

? ? <2> 設(shè)置請(qǐng)求頭,告訴服務(wù)器請(qǐng)求體中的內(nèi)容包含文件參數(shù).

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

?? ?

? ? <3> 設(shè)置請(qǐng)求體(注意:必須嚴(yán)格按照格式設(shè)置).

? ? {

? ? ? ? // 上邊界

? ? ? ? --boundary\r\n

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

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

?? ? ? ?

?? ? ? ?

? ? ? ? 文件內(nèi)容的二進(jìn)制數(shù)據(jù)

?? ? ? ?

? ? ? ? // 下邊界

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

?? ? ? ?

?? ? ? ?

? ? ? ? 注意1:請(qǐng)求體內(nèi)容分為三個(gè)部分:

?? ? ? ?

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

?? ? ? ?

? ? ? ? * 上傳文件的數(shù)據(jù)部分(二進(jìn)制數(shù)據(jù))

?? ? ? ?

? ? ? ? * 下邊界部分,嚴(yán)格按照字符串格式來(lái)設(shè)置.

?? ? ? ?

? ? ? ? 上邊界部分和下邊界部分的字符串,最后都要轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),和文件部分的二進(jìn)制數(shù)據(jù)拼接在一起,作為請(qǐng)求體發(fā)送給服務(wù)器.

?? ? ? ?

?? ? ? ?

? ? ? ? 注意2:

?? ?

? ? ? ? * userfile => 負(fù)責(zé)上傳文件腳本中的 字段名,開(kāi)發(fā)的時(shí)候,可以咨詢(xún)后端程序員

? ? ? ? * filename => 將文件保存在服務(wù)器上的文件名稱(chēng)

? ? ? ? * Content-Type: 客戶(hù)端告訴服務(wù)器上傳文件的文件類(lèi)型

?? ? ? ?

? ? ? ? 注意3:

?? ? ? ?

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

? ? ? ? * 提示:有些服務(wù)器可以直接使用 \n,但是新浪微博如果使用 \n 上傳文件,服務(wù)器會(huì)返回沒(méi)有權(quán)限的錯(cuò)誤!

?? ? ? ?

? ? }

?? ?

? ? <4> 發(fā)送請(qǐng)求( NSURLConnection異步發(fā)送請(qǐng)求)

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

? ? ? ? //

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

?? ? ? ?

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

? ? }];

?? ?

}

轉(zhuǎn)載于:https://www.cnblogs.com/xhc1263478959/p/4809267.html

總結(jié)

以上是生活随笔為你收集整理的POST单文件上传的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。