admin管理员组文章数量:1323200
文件
其实不用struts也可以实现下载,可以直接用一个链接,href里面写文件的目录。如:
1 <a href="download/123.rar">123.rar</a>
这种方法简单,不过它只能下载压缩文件,而其他一些文件如文本文件、图片等都会直接在页面上面显示出来而不会下载到客户端,所以此方法不可取。
下面介绍另一种方法,也就是用struts实现文件的下载。首先,在WebRoot目录下面建一个文件夹images,可以将文件上传到这个目录下面。下载文件也从该目录下面下载。
public String fileLoad() throws IOException{String fileName = ServletActionContext.getRequest().getParameter("fileName");//要处理中文乱码问题fileName = new String(fileName.getBytes("iso8859-1"),"utf-8");//要下载的哪个文件String path = ServletActionContext.getServletContext().getRealPath("/images");//得到项目的根目录InputStream is = new FileInputStream(path+"/"+fileName);//下载到哪里?客户端HttpServletResponse response = ServletActionContext.getResponse();OutputStream os = response.getOutputStream();//弹出下载的框filename:提示用户下载的文件名response.addHeader("content-disposition", "attachment;filename="+java.net.URLEncoder.encode(fileName,"utf-8"));byte[] b = new byte[1024];int size = is.read(b);while(size>0){os.write(b,0,size);size = is.read(b);}is.close();os.close();return null;}
index.jsp的内容如下:
<a href="GoodsAction_fileLoad.do?fileName=${image }"><span>名称</span></a>
文件下载分为两步:读文件、写文件。从服务器读取,然后写到客户端去,所以需要InputStream和OutputStream。然后设置content-disposition弹出下载提示框,提示用户下载的文件名和从何处下载的。
转载于:.html
本文标签: 文件
版权声明:本文标题:文件 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1687434869a102199.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论