Servlet+html+tomcat实现文件的上传和下载

您所在的位置:网站首页 servlet上传文件 Servlet+html+tomcat实现文件的上传和下载

Servlet+html+tomcat实现文件的上传和下载

2023-10-23 16:13| 来源: 网络整理| 查看: 265

文件的下载 核心:服务器响应文件数据到前台,当你点击连接实现下载具体步骤: 1—>在html中书写一个a标签来访问后台: 日本国女星大合集.avi

当我们点击这个连接浏览器就会下载,OK,要实现这个功能最关键的就是你要有这个资源,哈哈哈,所以我们需要在项目里面新建一个文件夹来存放资源 2.编写FileDownServlet程序类:

public class FileDownServlet extends HttpServlet{ private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取文件名 String fielname = request.getParameter("filename"); //2.指定响应的头信息为Content-Disposition为attachment;filename=,为了防止显示中文乱码 response.setHeader("Content-Disposition","attachment;filename="+new String(fielname.getBytes("utf-8"),"iso8859-1")); //获取输入输出流读取文件 InputStream inputStream = getServletContext().getResourceAsStream("source/"+fielname); ServletOutputStream outputStream = response.getOutputStream(); byte[] br=new byte[1024]; int len=-1; while ((len=inputStream.read(br))!=-1) { outputStream.write(br,0,len); } outputStream.close(); inputStream.close(); } }

这里关于怎么创建就暂时不说了,其实很简单,就是继续HttpServlet类,重写service方法,然后去web.xml中注册一下,注意虚拟路径. 3.我再写一下思路,首先就是获取超链接中的携带的资源名,不然不知道你点击下载的是什么文件,其次指定response响应的头信息为文件下载,代码是规定死的,没什么好解释的,然后使用response指定的输入输出流来读写,这里使用字节输入流,因为这个视频不是文本文件,不能使用字符输入流,最关键的是读取方式,这个是一个动态web项目,所以路径是会发生变化的,所以需要使用另外一种方式. 最终就可以实现点击超链接下载的功能实现了.

文件的上传 用户上传文件,所以涉及到request对象,请求上传文件具体实现在前端会复杂一些,后端代码反而不是很难实现是前端代码: 上传文件 头像:

这个必须使用form表单带的file类型的标签,其次必须为post请求,不能为get,表单还必须添加一个属性:enctype="multipart/form-data"缺一不可. 4.到这一步就基本上没啥难的,还是新建一个FileUpServlet程序类,依旧是继承重写注册,但此时最重要的来了,需要给这个Servlet添加注解:@MultipartConfig

@MultipartConfig public class FileUpServelt extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取上传的文件对象 Part part = request.getPart("photo"); //获取文件名 String name = part.getSubmittedFileName(); //2在服务器目录下新建一个文件夹存放 File file=new File("E:/ziyuan"); if (!file.exists()) { file.mkdir(); } //3开始写入文件 part.write(file+"/"+name); } }

剩下就是靠Part这个对象来完成功能了,首先获取上传的文件对象,使用Part对象接受,然后获取文件名,再使用I/O流中文件的创建,我在F盘下新建一个文件夹,并且进行判断是否创建了,然后直接调用Part对象的write()方法将绝对路径地址写入就会写入上传的文件了.

OK,以上就是文件的上传和下载了.


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3