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