Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

upload file in struts2 using ajax

Tags:

ajax

struts2

How can I upload a file in struts 2 using ajax

like image 754
Sumit Jain Avatar asked Mar 11 '11 07:03

Sumit Jain


2 Answers

Download the Struts2 jQuery Plugin and do it like you normaly do it with Struts2.

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
  <head>
    <sj:head/>
  </head>
  <body>
    <s:form id="form" action="AjaxTest">
      <s:file name="myFile" ... />
      <sj:submit value="Submit Form" targets="myAjaxTarget"/>
    </s:form>
    <div id="myAjaxTarget">
    </div>
  </body>
</html>
like image 101
Johannes Avatar answered Nov 17 '22 19:11

Johannes


If you want to return json data to client, you can get the error that a file download dialog appear to download json as a text file. I use struts2-json plugin so to fix this error, just add the following config to your action in struts.xml

<param name="contentType">text/plain</param>

my sample

        <action name="uploadFile" class="fileUploadAction">
            <interceptor-ref name="fileUploadStack"/>
            <result name="input">/WEB-INF/pages/uploadForm.jsp</result>
            <result name="success" type="json">
                 <param name="excludeProperties">
                         fileStoreManager, file
                 </param>
                 <param name="contentType">text/plain</param>
            </result>
            <result name="cancel" type="redirectAction">mainMenu</result>
        </action>
like image 26
SonTL Avatar answered Nov 17 '22 19:11

SonTL