基于struts2的文件上传与下载

1.导入stuts2包(导入常用的即可)
2.文件上传
upload.jsp
部分代码如下(红色部分引起注意):
<form name="frm" action="<s:url value="/uploadfile/uploadFile.action"/>"  method ="post" enctype ="multipart/form-data" >
......
<input type="file" name ="myFile"/>
......

UploadFileAction.java
部分代码如下
private File myFile = null; // 上传的文件

private String fileName = null;// 上传文件名

private String contentType = null;// 文件类型

public void setMyFileContentType(String contentType) {
this.contentType = contentType;
}

public void setMyFileFileName(String fileName) {
this.fileName = fileName;
}
public void setMyFile(File myFile) {
this.myFile = myFile;
}
......
//文件上传
File uploadFile = new File("D:/" + uuid + attach);
FileUtils.copyFile(myFile, uploadFile);

......

struts.xml文件配置(部分代码)
<action name="uploadFile" class="com.uploadFileAction">
<interceptor-ref name="fileUpload">
                 <param name="maximumSize">10485760</param>
             </interceptor-ref>
             <interceptor-ref name="defaultStack"/>
             <param name="savePath">/upload</param>
<result name="input">/FileUpload/uploadFile.jsp</result>
<result name="success">/FileUpload/listFiles.jsp</result>
</action>

3.文件下载(部分代码)
download.jsp(注意红色部分:避免中文乱码)
<a href="<s:url value="/uploadfile/downloadFile.action"> <s:param name="url" value="此处为文件路径"/></s:url>"></a>

DownloadFileAction.java
......
private InputStream inputStream = null; //这里必须为inputStream
private String url = null;
......
inputStream = FileUtils.openInputStream(new File(url));
......
public InputStream getInputStream() {
return inputStream;
}
public void setUrl(String url){
     this.url = url;
}
......

struts.xml文件配置
<action name="downloadFile" class="downloadFileAction">
<result name="success" type="stream">
<param name="bufferSize">4096</param>
<param name="contentDisposition">
attachment
</param>
</result>
</action>

你可能感兴趣的:(java,jsp,xml,struts)