2016-05-13 39 views
0

我是Grails中的新成員。我多次嘗試上傳文件。但失敗了。我正在使用grails 2.3.11。而在我的Config.groovy文件,我已經包括無法在grails中以任何代價上傳文件

grails.web.disable.multipart=true 

我沒加任何依賴於BuildConfig文件上傳。我需要它來解決不好。我給碼在

GSP代碼:

<g:uploadForm action="upload" enctype="multipart/form-data" useToken="true"> 
     <fieldset class="form"> 
      <input type="file" name="file" /> 
     </fieldset> 
     <fieldset class="buttons"> 
      <g:submitButton name="upload" class="save" value="Upload" /> 
     </fieldset> 
    </g:uploadForm> 

我的控制器代碼:

def file = request.getFile('file') 

我也試過用這段代碼:

MultipartRequest multipartRequest = request as MultipartRequest 
    def file = multipartRequest.getFile('file') 
    if (file){ 
     flash.message = "File found!!" 
    } else { 
     flash.message = "File NOT found. :-(" 
    } 
    redirect action:'list' 

但每每當我得到相同的錯誤:

groovy.lang.MissingMethodException: No signature of method: 
    org.apache.catalina.core.ApplicationHttpRequest.getFile() 
    is applicable for argument types: (java.lang.String) values: [file] 
    Possible solutions: getXML(), getPart(java.lang.String), 
    getAt(java.lang.String), getAt(java.lang.String), getLocale(), getInfo() 

如何解決這個問題?有沒有完整的文件上傳示例?

+0

回答

2

您應該在config.groovy中設置grails.web.disable.multipart = false。這意味着你想啓用多部分請求到你的服務器。並且在你的控制器中:

String content = request.getContentType() 
if (content.contains("multipart/form-data") || (request instanceof MultipartHttpServletRequest)) { 
    MultipartFile uploadedFile = request.getFile('file') 
    if (!uploadedFile) { 
     flash.message = "No attachment found for upload!" 
    }else{ 
     flash.message = "File uploaded successfully." 
    } 
} else { 
    flash.message = "Unable to upload file, Bad Request!") 
} 
+0

感謝Sandeep Poonia。它的工作:) – user2488166

+4

如果它的作品,你應該接受答案 –