1.上传:

从浏览器客户端利用文件域选择文件,然后后端解析接收,保存在服务器中

首先创建一个jsp页面,用来选择文件:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<form action="UpServlet" method="post" enctype="multipart/form-data">姓名:<input type="text" name="uname">文件:<input type="file" name="myfile"><input type="submit" value="上传">
</form>
</body>
</html>

需要注意的是:

  1. form表单中的method是post请求
  2. form表单中添加属性:enctype="multipart/form-data"
  3. 利用form表单中的文件域,并添加name属性

创建servlet文件:

package cn.kgc.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;@MultipartConfig
public class UpServlet extends HttpServlet {protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置字符集request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获取上传的人String uname = request.getParameter("uname");System.out.println("上传者:" + uname);//获取part对象Part myfile = request.getPart("myfile");//获取文件名String fileName = myfile.getSubmittedFileName();System.out.println("上传文件名:" + fileName);//设置上传文件路径String filePath = request.getServletContext().getRealPath("/");System.out.println("上传路径:" + filePath);//将文件上传到指定路径myfile.write(filePath+"/"+fileName);}}

servlet注意在类前添加 @MultipartConfig 用来修饰

点击上传后,会将girl.jpg文件上传,并且在控制太可以看到路径:

访问路径就可以看到上传的文件:

2.下载:

创建jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<form action="DownServlet" method="post"><input type="text" name="filename" placeholder="请输入要下载的文件名"><br/><%--    <input type="submit" value="下载">--%><button>下载</button>
</form>
</body>
</html>

创建servlet文件:

package cn.kgc.servlet;import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;@MultipartConfig
public class DownServlet extends HttpServlet {protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置字符集request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获取filename的值String filename = request.getParameter("filename");//校验判空并去除前后空格if (filename == null || "".equals(filename.trim())) {response.getWriter().write("请输入要下载的文件");//关闭资源response.getWriter().close();//退出程序return;}//获取文件下载路径String path = getServletContext().getRealPath("/");//构建文件全路径File file = new File(path + filename);//判断文件是否存在if (file.exists() && file.isFile()) {//通过response.setContentType()方法设置Content-Type头字段的值response.setContentType("application/x-msdownload");//通过setHeader,设置Headerresponse.setHeader("Content-Disposition", "attachment;filename=" + filename);//实例化文件流FileInputStream fis = new FileInputStream(file);//写出文件流ServletOutputStream sos = response.getOutputStream();byte[] array = new byte[1024];int len = 0;while ((len = fis.read(array)) != -1) {sos.write(array, 0, len);}} else {response.getWriter().write("文件不存在,请重新输入");//关闭资源response.getWriter().close();//退出程序return;}}}

做到判空,判断文件是否存在等功能

Servlet实现上传下载相关推荐

  1. servlet文件上传下载_Servlet上传文件和下载文件示例

    servlet文件上传下载 Java Web应用程序中的文件上载和下载以及常见任务. 由于最近我写了很多有关Java servlet的文章 ,因此我想提供一个使用servlet上传和下载文件的示例示例 ...

  2. 文件上传下载—servlet API实现

    servlet API实现文件上传下载需要的jar包: UploadServlet.java package com.ymw.web.servlet;import java.io.File; impo ...

  3. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

    参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...

  4. servlet上传下载(任何格式的都可以)

    jar不能低于此版本,JDK1.6以上,否则户报错 <dependency> <groupId>commons-fileupload</groupId> <a ...

  5. 通过ajaxFileUpload异步请求上传文件(ajaxFileUpload+servlet实现文件上传下载)

    1.最终效果 实现选择图片(此处以图片为例,支持所有类型文件的上传),选择之后将选择的图片在页面中显示出来,点击上传,可以将文件上传到指定的地址中,上传成功后在当前页面自动显示下载标签. 源码下载地址 ...

  6. 使用cropbox.js+jquery.js+servlet实现图片的上传下载

    采用cropbox.js+jqueryajax + servlet实现图片的上传下载 原理解释: 利用javascript的内置对象FileReader读取计算机中的文件. 读取的文件会被转化为bas ...

  7. 使用JSP+Servlet实现文件的上传下载上传

    <!DOCTYPE html > <html> <head> <meta charset="UTF-8"> <title> ...

  8. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  9. Webwork 学习之路【07】文件上传下载

    Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大并发访问的交易网站.WebWork 当然也提供了很友好的拦截器来实现对文件的上传,让我们可以专注与业务逻辑的设计和实现,在实现上传和下载时顺 ...

  10. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

最新文章

  1. 来自程序员的福利!用Python做一款翻译软件
  2. 收藏一波:常用正则表达式公式总结
  3. songCMS 3.15 cookie SQLINJ
  4. JDBC——jdbcUtils加载配置文件赋值
  5. 昔日的独角兽Docker资金紧张,未来前途未卜
  6. Oracle学习:数据的插入、修改和删除
  7. 让图片自适应大小的方法
  8. Designing Virtual Connect for vSphere 5.x
  9. jquery实现上下左右键盘监听_jQuery监听键盘事件及相关操作使用
  10. java 新手入门电子书_3款针对初学者的免费Java电子书
  11. android 微信地址选择,安卓微信位置实时修改
  12. 字节跳动财务报表_【实锤】这一波疫情过后,字节跳动要上市了
  13. html 手机录视频,手机怎么录制视频 怎么用手机录视频?
  14. 一文学会CentOS 文件常用命令
  15. 关于office2016卸载后注册表残留无法重新安装问题解决
  16. win7家庭版系统管理员模式开启
  17. VCS中VPD的使用简单教程
  18. 关于IT信息化的一些感想
  19. 2021年整理最全Java面试题:数据结构+算法+JVM+线程+finalize+GC统统包含
  20. jq使用face-api.js 识别人脸对比是否是同一个人

热门文章

  1. linux 打包qt可执行文件
  2. 05《基于深度卷积神经网络的车型识别研究》学习总结
  3. DS证据理论基础研究--主要将其应用于旅游管理科学研究中
  4. SwitchNAT 测试
  5. 系统架构设计师论文范文
  6. 使用DroidCam过程中所遇到的问题及处理方法
  7. 字母c语言教学课件,计算机二级考试C语言辅导课件.ppt
  8. Python+Django+vue的旅游信息网站系统项目源码介绍
  9. Packet Tracer 思科模拟器入门教程 实验报告1
  10. python自动生成采集规则_python 织梦自动采集更新脚本