簡體   English   中英

在Grails 2.3.7中上傳文件時出錯

[英]Error while uploading file in grails 2.3.7

發送電子郵件時,我將附加一個文件。

<g:formRemote id="emailWidgetForm" name="emailOrderMailForm" enctype="multipart/form-data"
 on404="alert('not found!')"
 onLoading="showSpinner('emailWidget');" onComplete="hideSpinner();"
 url="[controller: 'emailSender', action:'sendPersonalEmailToCustomer']"
 action="${createLink(controller: 'emailOrder', action:  
 'sendPersonalEmailToCustomer')}"
 before="if( validateGivenForm( 'emailWidgetForm' ) ) { " after="}">

 <tr>
 <td><strong>Attachment</strong></td>
 <td><input type="file" size="10" name="attachments"/></td>
 </tr>
 <g:submitButton name="sendEmailButton" class="btn btn-primary pull-right"
                    value="Send  Email"/>
 </g:formRemote>

當我要像控制器一樣

def file = request.getFile('attachments');

我在上面的行上收到錯誤消息。

錯誤是

groovy.lang.MissingMethodException: No signature of method:   
org.springframework.security.web.servletapi.HttpServlet3RequestFactory$Servlet3SecurityContextHolderAwareRequestWrapper.getFile() is applicable for argument types: (java.lang.String) values: [attachments]
Possible solutions: getXML(), getPart(java.lang.String), getAt(java.lang.String), getAt(java.lang.String), getLocale(), getJSON()

請幫我。

[ 編輯 -根據Burt的評論忽略此內容。 它僅在Java / Spring中有效]

您可能必須將request對象轉換為通常的MultipartHttpServletRequest

MultipartHttpServletRequest mhsr = (MultipartHttpServletRequest) request
MultipartFile file = mhsr.getFile("attachments")

我猜想,由於Spring安全性似乎正在注入其自己的Servlet3SecurityContextHolderAwareRequestWrapper版本的request

為此存在Jira問題,只需在配置文件中設置grails.web.disable.multipart=true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM