모든 <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에서) 같은 것을 할 수 있습니다 : 그것은 또한 경우 대신이 <g:form>
당신은 단지 그것에게 할 필요없이 작동
//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')
당신은 자신의 수락에 대한 내 대답을 받아 들일 수 없습니까? 비록 내가 당신에게 전체 솔루션을 주었지만 당신이 한 것은 기본적으로 폼 태그의 차이점에 대해 말한 것을 다시 말한 것입니다. IMHO는 매우 나쁜 형태이며 사람들이 당신을 돕는 것을 멈추게 할 것입니다. – Kelly
야, 당신이 더 기분이 좋아지면 복수 응답을 선택할 수 있다고 생각했습니다. 내게 중요하지 않은 답변을 선택하겠습니다. – Ameya
당신을 도와주는 사람들을 인정하는 것입니다 - 요. – Kelly