我已经使用Struts2检查了各种平台上传ZIP文件。
我从http://struts.apache.org/docs/file-upload.html获得了一些参考,但不值得 我知道我们可以使用Struts 2上传多个文件,但我想将其作为zip文件夹上传。
是否可以使用Struts2上传文件?
<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;
}
}
<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的例子。
答案 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>