一、文件上传
1、客户端表单
<s:form action="upload" theme="simple" enctype="multipart/form-data">
<table align="center" border="1" width="50%">
<tr>
<td>
<s:file name="file" label="file1" id="fileid"></s:file>
</td>
</tr>
<tr>
<td>
<s:submit value="submit"></s:submit>
</td>
</tr>
</table>
</s:form>
2 、struts.xml配置
<action name="upload" class="com.test.action.UploadAction"> <result name="success">/uploadResult.jsp</result> <result name="input">/upload.jsp</result> <interceptor-ref name="fileUpload"> <param name="maximumSize">409600</param> <param name="allowedTypes">text/plain</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action>
3、action类
for (int i = 0; i < file.size(); i++) {
InputStream is = new FileInputStream(file.get(i));
String root = ServletActionContext.getRequest().getRealPath("/upload");
File destFile = new File(root, this.getFileFileName().get(i));
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);}
is.close();
os.close();
}
二、文件下载
1、客户端表单
<s:a href="/MyStructs2/download.action">download</s:a>
2、struts.xml配置
<action name="download" class="com.test.action.DownloadAction">
<result name="success" type="stream">
<param name="contentType">text/plain</param>
<param name="inputName">downloadFile</param>
<param name="contentDisposition">attachment;filename="linux.txt"</param>
<param name="bufferSize">1024</param>
</result>
</action>
3、action类实现getDownloadFile方法
public InputStream getDownloadFile()
{
return ServletActionContext.getServletContext().getResourceAsStream("/upload/linux3.txt");
}
三、测试一下吧!