タグが行うことは、<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
ファイルシステムに保存している場合は、次のようなことができます(マニュアルから直接):
//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')