所有<g:uploadForm...>
標籤所設置的格式爲enctype至multipart/form-data
。要上傳標準文本輸入和文件,我通常只是做到以下幾點:
//GSP
<g:form method="post" enctype="multipart/form-data" action="update">
<input type="text" name="myTextField" id="myTextField" />
<input type="file" id="myFile" name="myFile" />
<g:actionSubmit class="save" action="update" value="${message(code: 'default.button.update.label', default: 'Update')}" />
</g:form> //closing tag fixed
然後你在你的控制器做什麼取決於你如何保存上傳文件。如果你將它保存到byte [] myFile
,它將自動綁定,如果字段名稱設置正確,所以你不必做任何事情 - 它只是工作。
//controller
myInstance.properties = params //binds text as well as upload files
如果你把它保存到文件系統,你可以做這樣的事情(直接從manual):
//Controller
def f = request.getFile('myFile')
if (f.empty) {
flash.message = 'file cannot be empty'
render(view: 'uploadForm')
return
}
f.transferTo(new File('/some/local/dir/myfile.txt'))
response.sendError(200, 'Done')
您未接受我的答案接受自己的答案?即使我給了你整個解決方案,你所做的基本上是重申了我所說的有關表單標籤之間的區別。恕我直言,這是非常糟糕的形式,並會讓人停止幫助你。 – Kelly 2012-07-12 23:10:28
喲放鬆,我想我可以選擇多個答案,如果它讓你感覺更好,我會選擇你的答案對我無關 – Ameya 2012-07-12 23:38:33
這是關於承認幫助你的人 - 喲。 – Kelly 2012-07-13 00:05:59