jsp/servlet实现文件上传下载
(1)下载相关 jar包,配置好web.xml中各种映射。
(2)jsp页面,注意form提交类型:
<form id="" name="" method="post" action="DBServlet?operate=adddb" enctype="multipart/form-data"> 数据文件上传:<input size=‘100‘ id="wenjian" name="wenjian" type="file" /> </form>
(3)servlet:
数据库里有一个字段用来存在新的文件名字,而文件保存在服务器的某个目录下头。
String picpath = this.getServletContext().getRealPath("/"); //参考:http://blog.sina.com.cn/s/blog_639dde240100mzvj.html //E:\workspace\web应用名String saveDirectory = picpath + "UserFiles/DBfile"; // 每个文件最大2G,最多3个文件,所以... int maxPostSize = 1024 * 1024 * 1024; MultipartRequest multi = new MultipartRequest(request, saveDirectory,maxPostSize, "utf-8"); String fileType = null; String fileName = null; String newFileName = null; String[] cid = multi.getParameterValues("cid");//页面某个name属性,有固定value,为了给文件重命名时区分是哪里上传的。 Enumeration files = multi.getFileNames();//枚举 String elementname = null; File file = null; int i = 1; while (files.hasMoreElements()) { elementname = (String) files.nextElement(); file = multi.getFile(elementname); if (file != null) { fileName = file.getName(); fileType = fileName.substring(fileName.lastIndexOf(".") + 1); String extName = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); format.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); newFileName = format.format(date) + "_"+ cid[cid.length - i] + "." + extName; renameFile(saveDirectory, fileName, newFileName); } i++; }
文件下载
(1)下载jsp页面:
UserFiles/DBfile是服务器上文件夹,而dbpath是数据库里存储该对象文件名字段。
<a href="download.jsp?path=<%=getServletContext().getRealPath("/") %>/UserFiles/DBfile/<%=dbpath%>"><%=dbpath %></a>
(2)download.jsp页面,一个servlet而已,只是处理下载,jsp全部代码:
<%@ page contentType="text/html;charset=gb2312" import="com.jsl.message.util.SmartUpload.*" %><% String path=request.getParameter("path"); //新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); //初始化 su.initialize(pageContext); //设定contentDisposition为null以禁止浏览器自动打开文件, //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 //doc时,浏览器将自动用word打开它。扩展名为pdf时, 浏览器将用acrobat打开。 su.setContentDisposition(null); System.out.print("____"+path); // 下载文件 //su.downloadFile("/attch/materiallist/文档.doc"); su.downloadFile(path,request); %>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。