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" name="code">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" 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 楼 叶凡520 2011-03-24 我想使用楼主这个方法 但是 好像会报错的 说的是 不能找到 一个变量名叫downloadFile的java.io.InputStream型变量,然后我就到Action中写了这个变量,但还是不行,请问楼主,能不能把这个说得详细点,原始的下载方法真的很烦,代码得一堆,这个简单 但是报错啊,呵呵,麻烦了。 2 楼 fushengfei 2011-03-29 叶凡520 写道我想使用楼主这个方法 但是 好像会报错的 说的是 不能找到 一个变量名叫downloadFile的java.io.InputStream型变量,然后我就到Action中写了这个变量,但还是不行,请问楼主,能不能把这个说得详细点,原始的下载方法真的很烦,代码得一堆,这个简单 但是报错啊,呵呵,麻烦了。