分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Servlet3.0文件上传

发布时间:2023-09-06 01:24责任编辑:熊小新关键词:文件上传

Servelt3.0文件上传作为一种便捷的文件上传方式很是值得我们去应用的

1.Servlet3.0文件上传使用步骤

  • 浏览器端的要求
    • 表单的提交方法必须是post
    • 必须有一个文件上传组件 <input type="file" name="f"/>
    • 必须设置表单的enctype="multipart/form-data
    • 1 <form action="/upload/upload3" enctype="multipart/form-data"2 ????????method="post">3 ????????用户名:<input type="text" name="username"><br> 4 ????????文件:<input5 ????????????type="file" name="f"> 6 ????????<input type="submit"><br>7 ????</form>
  • 服务器端的要求
    • 在Servelt上添加注解  @MultipartConfig
    • 1 /**2 ?* Servlet3.0文件上传下载3 ?*/4 @WebServlet("/upload3")5 @MultipartConfig6 public class upload3 extends HttpServlet {7 ????private static final long serialVersionUID = 1L;8 ???????9 ????protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

2.Servlet3.0文件上传如何获取数据

  • 获取普通上传组件   request.getParameter(name属性的值);
  • 获取文件上传组件   Part p =  request.getPart("表单文件组件的name名");
    • 获取表单文件的name名
      //获取表单提交页面name的属性值 ???????????String name = part.getName();
    • 获取真实文件名
      //获取文件真实文件名String header = part.getHeader("content-disposition");String realName=header.substring(header.indexOf("filename=")+10,header.length()-1);
    • 获取文件大小
      //获取文件的大小 ???????????long size = part.getSize();
    • 获取文件的输入流
      //获取文件的输入流InputStream inputStream = part.getInputStream();

3.Servlet3.0文件上传可能会遇到的问题

  • 名字重复的问题 如果用户提交了两个1.png只会保存第一次 这样在实际开发中是很不可取的 解决方法有一下
    • 采用随机名称DSJDLSJDIHU739832hsdhf.png
  • 文件安全问题  如果文件都放在WebContext目录下 那么在互联网上任何人都可以访问的到 那么针对重要的文件可以这样做
    • 放在meta-inf目录下
    • 放在web-inf目录下
    • 放在项目外部 计算机文件夹中

Servlet3.0文件上传

原文地址:http://www.cnblogs.com/jimisun/p/7820943.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved