Servlet实现上传下载
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>
需要注意的是:
- form表单中的method是post请求
- form表单中添加属性:enctype="multipart/form-data"
- 利用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实现上传下载相关推荐
- servlet文件上传下载_Servlet上传文件和下载文件示例
servlet文件上传下载 Java Web应用程序中的文件上载和下载以及常见任务. 由于最近我写了很多有关Java servlet的文章 ,因此我想提供一个使用servlet上传和下载文件的示例示例 ...
- 文件上传下载—servlet API实现
servlet API实现文件上传下载需要的jar包: UploadServlet.java package com.ymw.web.servlet;import java.io.File; impo ...
- springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)
参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...
- servlet上传下载(任何格式的都可以)
jar不能低于此版本,JDK1.6以上,否则户报错 <dependency> <groupId>commons-fileupload</groupId> <a ...
- 通过ajaxFileUpload异步请求上传文件(ajaxFileUpload+servlet实现文件上传下载)
1.最终效果 实现选择图片(此处以图片为例,支持所有类型文件的上传),选择之后将选择的图片在页面中显示出来,点击上传,可以将文件上传到指定的地址中,上传成功后在当前页面自动显示下载标签. 源码下载地址 ...
- 使用cropbox.js+jquery.js+servlet实现图片的上传下载
采用cropbox.js+jqueryajax + servlet实现图片的上传下载 原理解释: 利用javascript的内置对象FileReader读取计算机中的文件. 读取的文件会被转化为bas ...
- 使用JSP+Servlet实现文件的上传下载上传
<!DOCTYPE html > <html> <head> <meta charset="UTF-8"> <title> ...
- JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载
文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...
- Webwork 学习之路【07】文件上传下载
Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大并发访问的交易网站.WebWork 当然也提供了很友好的拦截器来实现对文件的上传,让我们可以专注与业务逻辑的设计和实现,在实现上传和下载时顺 ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
最新文章
- 来自程序员的福利!用Python做一款翻译软件
- 收藏一波:常用正则表达式公式总结
- songCMS 3.15 cookie SQLINJ
- JDBC——jdbcUtils加载配置文件赋值
- 昔日的独角兽Docker资金紧张,未来前途未卜
- Oracle学习:数据的插入、修改和删除
- 让图片自适应大小的方法
- Designing Virtual Connect for vSphere 5.x
- jquery实现上下左右键盘监听_jQuery监听键盘事件及相关操作使用
- java 新手入门电子书_3款针对初学者的免费Java电子书
- android 微信地址选择,安卓微信位置实时修改
- 字节跳动财务报表_【实锤】这一波疫情过后,字节跳动要上市了
- html 手机录视频,手机怎么录制视频 怎么用手机录视频?
- 一文学会CentOS 文件常用命令
- 关于office2016卸载后注册表残留无法重新安装问题解决
- win7家庭版系统管理员模式开启
- VCS中VPD的使用简单教程
- 关于IT信息化的一些感想
- 2021年整理最全Java面试题:数据结构+算法+JVM+线程+finalize+GC统统包含
- jq使用face-api.js 识别人脸对比是否是同一个人