您可以使用 multipart/form-data 內(nèi)容類(lèi)型在一個(gè)請(qǐng)求中傳送文件和資料:
來(lái)自 http://www.faqs.org/rfcs/rfc2388.html:
您可以在每個(gè)邊界之間的每個(gè)部分中包含文件資訊或欄位資訊。我已經(jīng)成功地實(shí)現(xiàn)了一個(gè)需要使用者提交資料和表單的RESTful服務(wù),multipart/form-data完美地工作。該服務(wù)使用Java/Spring構(gòu)建,客戶(hù)端使用C#,所以很遺憾我沒(méi)有Grails的範(fàn)例可以提供給您關(guān)於如何設(shè)定服務(wù)。在這種情況下,您不需要使用JSON,因?yàn)槊總€(gè)「form-data」部分都為您提供了指定參數(shù)名稱(chēng)及其值的位置。
使用multipart/form-data的好處是您正在使用HTTP定義的頭部,因此您遵循了使用現(xiàn)有HTTP工具建立服務(wù)的REST理念。
我在這裡問(wèn)了一個(gè)類(lèi)似的問(wèn)題:
你基本上有三種選擇:
multipart/form-data
的形式傳送文件,並將ID傳回給客戶(hù)端。然後客戶(hù)端使用該ID發(fā)送元數(shù)據(jù),伺服器重新關(guān)聯(lián)文件和元數(shù)據(jù)。