通过Struts 2中的表格上传文件

时间:2014-10-12 17:37:13

标签: java jsp file-upload struts2 multiple-file-upload

我必须一次上传多个文件。我已将这些文件添加到表格中。我想将表中添加的这些文件发送到我的动作类。但是我无法这样做?

我的jquery就像

    $(document).ready(function(){
        $("#table").hide();
        $("#table1").hide();                        
        $('#fileButton').on("click",function(e) {
            e.preventDefault();
        });
    });

这个文件正在表中添加

function addFile() {
    var fileName = $("#myFile").val();

    if(fileName.lastIndexOf('/')!=-1) {
        fileName = fileName.substring(fileName.lastIndexOf('/')+1);
    } else if(fileName.lastIndexOf('\\')!=-1){
        fileName = fileName.substring(fileName.lastIndexOf('\\')+1);
    }

    if(!isFilePresent(fileName)){
        $("#table").show();
        $("#table1").show();
        var row = '<tr><td class="filename">'+fileName+'</td></tr>';
        $("#myTable tbody").append(row);
    }   
    $("#myFile").val("");
} 

这是我的表格

<form action="documentUpload" method="POST"  enctype="multipart/form-data">
    <s:file label="File (1)" id="myFile" name="upload" /> 

    <input type="button" value="ADD" class="Button" 
             id="fileButton" onclick="addFile();"/>

    <table id="myTable">
        <thead>
            <tr>
            <div>File Type</div>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>

    <s:submit  value="Upload" id="table1"/>
</form>

这是我的struts.xml条目

<action name="documentUpload" class="objDocumentUpload" method="upload">
    <result name="success">/jsp/documentUpload2.jsp</result>
    <result name="input">/jsp/dashboard.jsp</result>
</action>

这是我的动作类。

public class FileUploadAction {
    private List<File> uploads = new ArrayList<File>();

    public String upload() throws Exception {    
        int upload12=uploads.size();
        System.out.println(upload12);
        return SUCCESS;
    }

我成功地在表格中添加了文件。当我点击上传按钮时,控件将转移到我的动作类。但是在上传方法中,我将upload12的大小设为零。

请提供任何有用的解决方案,以便我可以通过表格上传文件

1 个答案:

答案 0 :(得分:0)

您的表只是一个客户端显示,在POST期间不会使用。 您需要在表单中创建“文件”字段,而不是表格行。