使用的是Servlet 3.0 新的特征标注(Annotaion)类描述部署,一些低版本的服务器需要使用标准依赖部署描述文件(web.xml)来部署,另外Part也是Java EE 6.0新增的类,Part是一个接口继承于javax.servlet.http,代表一部分表单项目接收来自multipart/form-data的POST的请求。

!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>上传文件</title></head><body><div class="container"><form action="upload.do" method="post" enctype="multipart/form-data"><table><tr><td><label for="file">上传文件:</label></td><td><input type="file" id="file" name="picture" value=""/></td></tr><tr><td colspan="2"><input type="submit" value="提交"/></td></tr></table></form></div></body>
</html>
@MultipartConfig
@WebServlet(name = "UploadServlet", urlPatterns = {"/upload.do"})
public class UploadServlet extends HttpServlet {private String contextPath;@Overridepublic void init() throws ServletException {contextPath = getServletContext().getRealPath("/");}protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");Part part = request.getPart("picture");String fileName = getFileName(part);writeTo(fileName, part);//forward到显示request.setAttribute("fileName", fileName);request.getRequestDispatcher("show.jsp").forward(request, response);}//取得上传文件名private String getFileName(Part part) {String header = part.getHeader("Content-Disposition");String fileName = header.substring(header.indexOf("filename=\"") + 10,header.lastIndexOf("\""));return fileName;}//存储文件private void writeTo(String fileName, Part part) throws IOException, FileNotFoundException {InputStream in = part.getInputStream();OutputStream out = new FileOutputStream(contextPath + fileName);byte[] buffer = new byte[1024];int length = -1;while ((length = in.read(buffer)) != -1) {out.write(buffer, 0, length);}in.close();out.close();}
}
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>JSP Page</title></head><body><h1>图片显示</h1><a href="${fileName}">${fileName}</a></body>
</html>

使用javax.servlet.http.Part类上传文件相关推荐

  1. part.write java_使用javax.servlet.http.Part类上传文件

    使用的是Servlet 3.0 新的特征标注(Annotaion)类描述部署,一些低版本的服务器需要使用标准依赖部署描述文件(web.xml)来部署,另外Part也是Java EE 6.0新增的类,P ...

  2. 学习日志day41(2021-09-03)(1、文件的上传 2、文件的查看 3、文件的下载 4、使用工具类上传文件 5、基于servlet3.0以上的文件上传 )

    学习内容:学习JavaWeb(Day41) 1.文件的上传 2.文件的查看 3.文件的下载 4.使用工具类上传文件 5.基于servlet3.0以上的文件上传 1.文件的上传 (1)实现文件的上传需要 ...

  3. Part类 -- 上传文件

    Part类 -- 上传文件 一.核心方法 1.1 HttpServletRequest 类方法 1.2 Part 类方法 二.代码示例 前端搭配 form 表单:form input type= &q ...

  4. php利用ftp上传视频,PHP用FTP类上传文件视频等的简单实现方法

    文件1:ftp.php<?php /** * 仿写CodeIgniter的FTP类 * FTP基本操作: * 1) 登陆; connect * 2) 当前目录文件列表; filelist * 3 ...

  5. JavaEE - Servlet(向服务器上传文件 Part类)

    我们在需要向服务器上传文件时,在前端需要使用form表单,form表单需要使用特殊的类型 form-data 此时提交文件的时候,浏览器会把文件内容以form-data的格式构造到HTTP请求中,服务 ...

  6. 利用腾讯云进行上传文件

    1.导入依赖 <!-- 腾讯云文件上传--><dependency><groupId>com.qcloud</groupId><artifactI ...

  7. channelsftp 上传文件为空_SpringBoot文件上传下载篇(九)

    点击上方蓝色字体,关注我们 上传文件是互联网中应用的场景之一,最典型的情况就是上传头像.文件上传主要是将文件通过IO流传输到服务器的某一个特定的文件夹下. Why->MultipartFile? ...

  8. springboot界面上传文件和在页面上显示文件

    做一个简单的上传图片和显示图片的测试 首先要有web-starter的包,Springboot中内置了DispatcherServlet也配置好了MultipartResolver. 关于上传文件的特 ...

  9. Ftp实现上传文件至远程服务器

    服务器安装FTP服务 1.安装vsftpd yum -y install vsftpd 2.关闭匿名访问 vim /etc/vsftpd/vsftpd.conf 将anonymous_enable的值 ...

最新文章

  1. 【转帖】计算机世界:后DRM时代的数字音乐博弈
  2. RSS接触 - 实战RSS文档输出
  3. 刚刚,贺建奎回应一切:如果是我孩子,我会第一个去试验
  4. 简单的busybox创建_用busybox构建一个最小根文件系统
  5. Map的使用和遍历方法示例
  6. 【指纹识别】基于matlab GUI指纹预处理+特征点提取【含Matlab源码 1693期】
  7. APK 包名修改工具
  8. 计算机组成原理秦磊华 pdf,_计算机组成原理_设计性实践教学模式研究_秦磊华.pdf...
  9. Android 系统源码——下载到编译
  10. Rhino导入Revit生成体量幕墙的方法和操作要点
  11. 微信头像css 3圆形,如何在手机端用PICSART制作微信圆形头像(图文教程)
  12. Java全栈(前端+后端)工程师学习路线
  13. HDFS文件误删除之恢复
  14. 独家对话行癫:最详解密阿里云顶层设计和底层逻辑
  15. python内存地址不变,关于python内存地址问题
  16. 怎么在线快速将多张CAD图纸转换成低版本DXF格式?
  17. 信道估计中的导频结构
  18. Nature子刊 | 全球变化因子对土壤微生物多样性和功能的影响
  19. 常见职位的英文简称_常见职位英文缩写()
  20. php style EOT EOD

热门文章

  1. python中的继承的初始化_python中子类继承父类的__init__方法实例
  2. int *pa[5]中的pa是什么
  3. python画位势高度图_气候变化位势高度
  4. 华为手机通过ADB禁止系统更新和卸载自带软件
  5. 外泌体介绍 - MedChemExpress
  6. acs包括哪几种_描写分为哪几种分别是什么
  7. iOS 在 Xcode 中重命名项目名称
  8. oracle在表上创建分区,Oracle分区表 (Partition Table) 的创建及管理
  9. Java基础学习(6)---Java面向对象
  10. 为什么中国只有5%的景区暴利惊人?95%的景区却总是踩到陷阱!做文旅必须看懂此文!