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