struts2实现文件上传和下载
一、文件上传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; 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");} 三、测试一下吧!
页:
[1]