使用struts2

时间:2016-06-14 09:17:31

标签: java jsp struts2

我已经使用Struts2检查了各种平台上传ZIP文件。

我从http://struts.apache.org/docs/file-upload.html获得了一些参考,但不值得 我知道我们可以使用Struts 2上传多个文件,但我想将其作为zip文件夹上传。

是否可以使用Struts2上传文件?

jsp page

<s:form action="doUpload" method="post" enctype="multipart/form-data">
    <s:file name="upload" label="File"/>
    <s:submit/>
</s:form>

动作类

public class UploadAction extends ActionSupport {
  private File[] upload;
  private String contentType;
  private String[] filename;


public File[] getFileUploads() {
    return upload;
}

public void setFileUploads(File[] fileUploads) {
    this.upload= fileUploads;
}

 public String[] getUploadsFileNames()
  {
    return filename;
  }

  public void setUploadsFileName(String[] uploadFileNames)
  {
    this.filename= uploadFileNames;
  }

  public String execute() {
try{
    String localPath = "C:\\tmp\\localDir";
    for (int i = 0; i < upload.length; i++)
     {
            File fileToCreate = new File(downloadDir.getAbsolutePath(), voiceBasePromptsFileNames[i]);
            FileUtils.copyFile(upload[i], fileToCreate);
     }
}catch(Exception e){}
       return SUCCESS;
  }
}

sturts.xml

<action name="doUpload" class="com.example.UploadAction">
            <param name="contentType">application/zip</param>
            <param name="inputName">zipFileInputStream</param>
            <param name="contentDisposition">attachment;filename="${fileName}"</param>
            <param name="bufferSize">1024</param>
            <param name="contentLength">${contentLength}</param>
        <result type="json" />
        <interceptor-ref name="defaultStack"></interceptor-ref>
</action>

通过使用此代码,我一次只能上传单个文件,但是当我尝试使用zip文件时,我为contentType,filename得到了null。 ..添加了我现在尝试的更新代码,但仍然没有运气。

修改

很抱歉,如果我的问题不清楚...添加更多点和更新的代码,我刚试过但不能正常工作。

我有多个要上传的文件,因此我会对所有文件进行压缩,并希望一次性使用struts2加载该zip文件。

正如我上面提到的,filename或其contentType来自 Null 。 所以我的问题是,我是否需要在struts.xml中的某个地方setcontentType,或者如果你有任何我可以参考通过struts2上传zip的例子。

1 个答案:

答案 0 :(得分:0)

Struts.xml

 <action name="resultAction" class="com.mkyong.common.action.FileUploadAction">
    <interceptor-ref name="exception"/>
        <interceptor-ref name="i18n"/>
        <interceptor-ref name="fileUpload">
        <param name="allowedTypes">text/plain,application/zip</param>
        <param name="maximumSize">10240</param>
    </interceptor-ref> 
        <interceptor-ref name="params">
            <param name="excludeParams">dojo\..*,^struts\..*</param>
        </interceptor-ref>
        <interceptor-ref name="validation">
            <param name="excludeMethods">input,back,cancel,browse</param>
        </interceptor-ref>
        <interceptor-ref name="workflow">
            <param name="excludeMethods">input,back,cancel,browse</param>
        </interceptor-ref>

    <result name="success">pages/result.jsp</result>
    <result name="input">pages/fileupload.jsp</result>

</action>