【问题标题】:Unable to upload file in struts2 using Jquery ajax无法使用 Jquery ajax 在 struts2 中上传文件
【发布时间】:2014-08-13 22:16:19
【问题描述】:

我正在尝试使用 Jquery ajax 在 struts 2 中上传文件。我可以使用表单提交。请帮助我。 JSP的代码如下

<script type="text/javascript">
function upload()
{
    $.ajax({
        type : "POST",
        url : 'userImage.action',
        dataType:'text',
        data:$("#uploadForm").serialize(),
        async:false,
        success : function(data) {
        alert(data)
        }
    });
}
</script>
</head>

<body>
<h2>Struts2 File Upload & Save Example</h2>
<s:actionerror />
<form id="uploadForm" action="userImage" method="post" enctype="multipart/form-data">
    <input type="file" name="userImage"  /><br>
    <input type="button" value="submit" onclick="upload()">
</form>
</body>
</html>

struts2.xml中给出的代码如下

<action name="userImage"
                    class="hart.bean.FileUploadAction">
                    <interceptor-ref name="fileUpload">
                        <param name="maximumSize">2097152</param>
                    </interceptor-ref>
                    <interceptor-ref name="defaultStack"></interceptor-ref>
                    <result name="success">SuccessUserImage.jsp</result>
                    <result name="input">UserImage.jsp</result>
</action>

下面是action类的代码

    private File userImage;
    private String userImageContentType;
    private String userImageFileName;

    private HttpServletRequest servletRequest;

    public String execute() {
        try {
            String filePath = servletRequest.getSession().getServletContext().getContextPath();
            System.out.println("Server path:" + filePath+" userimg=="+userImageFileName);
            File fileToCreate = new File(filePath, this.userImageFileName);

            FileUtils.copyFile(this.userImage, fileToCreate);
        } catch (Exception e) {
            e.printStackTrace();
            addActionError(e.getMessage());

            return INPUT;
        }
        return SUCCESS;
    }

    public File getUserImage() {
        return userImage;
    }

    public void setUserImage(File userImage) {
        this.userImage = userImage;
    }

    public String getUserImageContentType() {
        return userImageContentType;
    }

    public void setUserImageContentType(String userImageContentType) {
        this.userImageContentType = userImageContentType;
    }

    public String getUserImageFileName() {
        return userImageFileName;
    }

    public void setUserImageFileName(String userImageFileName) {
        this.userImageFileName = userImageFileName;
    }

    @Override
    public void setServletRequest(HttpServletRequest servletRequest) {
        this.servletRequest = servletRequest;

    }

【问题讨论】:

    标签: jquery ajax jsp struts2


    【解决方案1】:

    当我在互联网上搜索时,我发现我无法使用 XMLHttpRequest (Ajax) 上传文件。所以我为此使用了一个 jquery 表单插件。

    【讨论】:

      猜你喜欢
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 2018-07-27
      • 2020-03-14
      • 1970-01-01
      相关资源
      最近更新 更多