使用Ajax文件上传struts 2

时间:2012-03-02 13:44:57

标签: struts2 struts

我使用带有jsp作为前端的struts 2上传文件,但是我不希望在文件上传后刷新页面,所以我使用的是Ajax但是我无法获取File对象,似乎文件上传需要在jsp中使用form标签,如果我提交表单,则页面会刷新。 我通过网络进行了研究,但是无法得到很多相关结果,如果有人指导我完成这项工作,那将会有很大的帮助。真的很感激任何帮助。 最好的问候

1 个答案:

答案 0 :(得分:0)

我建议使用iframe上传文件而不是ajax,

使用struts2和iframe上传Csv文件的示例代码:

    var file = $("#fileUpload").val();
    if(file.indexOf(".") != -1 && file.substr(file.indexOf("."))==".csv"){
        /* created  IFrame  For UPload file*/ 
        var iframe = $('<iframe name="uploadIPAddressIFrame"  id="uploadIPAddressIFrame" style="display: none" />');
        $("body").append(iframe);

        /* Set Form for submit iframe*/
        var form = $('#ipPoolForm');
        form.attr("action", "uploadCSVFile.do");
        form.attr("target", "uploadIPAddressIFrame");
        form.submit();

        openDialog(title);
        /* handle response of iframe */
        $("#uploadIPAddressIFrame").load(function () {
            response = $("#uploadIPAddressIFrame")[0].contentWindow.document.body.innerHTML;
            $("#chkIPAddressDiv").html(response);
            $("iframe#uploadIPAddressIFrame").remove();
        });     

上传后如果您提交表单,则更改表单的目标:

// Because of  using iframe for upload set target value
$("#ipPoolForm").attr("target", "");