如今使用HTTP協(xié)議定制API已經(jīng)是十分常見(jiàn)的事情,在普通的GET和POST請(qǐng)求中傳遞些參數(shù)估計(jì)人人都會(huì),但是如果我們需要上傳文件呢?如果只是傳遞單個(gè)文件,那么將數(shù)據(jù)流POST給服務(wù)器端即可。但如果需要上傳多個(gè)文件,或是在文件之外需要附帶一些信息,那么又該怎么做呢?之前我遇到過(guò)一些朋友是這么打算的,他們說(shuō),不如就把文件流轉(zhuǎn)化為文本,然后把它當(dāng)作一個(gè)普通的字段傳遞。這么做自然可以“實(shí)現(xiàn)功能”,但缺點(diǎn)也很多。首先,將二進(jìn)制流轉(zhuǎn)化為文本會(huì)增大體積(例如最常見(jiàn)的BASE64編碼會(huì)增大1/3的數(shù)據(jù)量);其次,既然互聯(lián)網(wǎng)上存在相關(guān)的協(xié)議,又為何要自定義一套規(guī)則呢?其實(shí)這便是《RFC 1867 - Form-based File Upload in HTML》,它是我們用HTML表單上傳文件時(shí)使用的傳輸協(xié)議,雖然十分常用,但似乎了解它的人并不多。
普通POST操作
說(shuō)起HTML表單,大家絕對(duì)不會(huì)陌生。例如下面這樣的HTML表單:
<form action="http://www.baidu.com/" method="post">
<input type="text" name="myText1" /><br />
<input type="text" name="myText2" /><br />
<input type="submit" />
</form>
it知識(shí)庫(kù):模擬HTML表單上傳文件(RFC 1867),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。