这个例子展示了如何使用JSP将用户指定的本地文件上传到服务器某个目录下面。

首先是文件上传的用户界面:

<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<h3>File Upload:</h3>
Select a file to upload: <br />
<form action="UploadServlet.jsp" method="post"enctype="multipart/form-data">
<input type="file" name="file" size="50" />
<br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>

界面如下:

UploadServlet.jsp的源代码:

<%@ page import="java.io.*,java.util.*, javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>
<%@ page import="org.apache.commons.io.output.*" %><%System.out.println("my file upload jsp file called!");File file ;int maxFileSize = 5000 * 1024;int maxMemSize = 5000 * 1024;ServletContext context = pageContext.getServletContext();String filePath = context.getInitParameter("file-upload");String contentType = request.getContentType();if ((contentType.indexOf("multipart/form-data") >= 0)) {DiskFileItemFactory factory = new DiskFileItemFactory();factory.setSizeThreshold(maxMemSize);factory.setRepository(new File("c:\\temp"));ServletFileUpload upload = new ServletFileUpload(factory);upload.setSizeMax( maxFileSize );try{ List fileItems = upload.parseRequest(request);Iterator i = fileItems.iterator();out.println("<html>");out.println("<head>");out.println("<title>JSP File upload</title>");  out.println("</head>");out.println("<body>");while ( i.hasNext () ) {FileItem fi = (FileItem)i.next();if ( !fi.isFormField () ) {String fieldName = fi.getFieldName();String fileName = fi.getName();boolean isInMemory = fi.isInMemory();long sizeInBytes = fi.getSize();if( fileName.lastIndexOf("\\") >= 0 ){file = new File( filePath , fileName.substring( fileName.lastIndexOf("\\"))) ;}else{file = new File( filePath ,fileName.substring(fileName.lastIndexOf("\\")+1)) ;}fi.write( file ) ;out.println("Uploaded Filename: " + filePath + fileName + "<br>");}}out.println("</body>");out.println("</html>");}catch(Exception ex) {System.out.println(ex);}}else{out.println("<html>");out.println("<head>");out.println("<title>Servlet upload</title>");  out.println("</head>");out.println("<body>");out.println("<p>No file uploaded</p>"); out.println("</body>");out.println("</html>");}
%>

web.xml的内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>jerryjsp</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><context-param> <description>File Upload Position</description> <param-name>file-upload</param-name> <param-value>c:\temp</param-value>
</context-param>
</web-app>

用Choose File选中一个本地文件,然后点击Upload File进行上传:

上传成功,在c盘temp文件夹下发现了成功上传的文件:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

JSP的文件上传处理相关推荐

  1. java jsp 文件上传_用JSP编写文件上传

    用JSP编写文件上传 发布时间:2016-09-14 来源: 点击: 次 如果你曾用VB编写文件上传的组件的话,那么用JAVA编写文件上传的JAVABEAN十分容易. 下面的例子只是一个简版 pack ...

  2. Goby 漏洞更新 | 万户 OA OfficeServer.jsp 任意文件上传漏洞

    漏洞名称:万户 OA OfficeServer.jsp 任意文件上传漏洞 English Name:ezOFFICE OA OfficeServer.jsp Arbitrarily File Uplo ...

  3. JSP笔记-文件上传

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  4. 使用jsp实现文件上传的功能

    首先是表单的jsp文件:upload.jsp <%@ page contentType="text/html;charset=UTF-8" language="ja ...

  5. [总结]jsp完成文件上传中遇到的“法克”路径解决办法

    在web工程中完成文件上传,需要在jsp页面上写上如下一个控件: <input type="file" id="f" name="f" ...

  6. jsp页面文件上传的详细教程

    0)导入文件上传的依赖 <dependency><groupId>commons-fileupload</groupId><artifactId>com ...

  7. JSP 实现文件上传

    JSP 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器.上传的文件可以是文本文件或图像文件或任何文档. 本章节我们使用 Servlet 来处理文件上传,使用到的文件有: uplo ...

  8. 【已解决】Jsp实现文件上传功能

    uploadExample.jsp 调用 doUpload.jsp,需要两个文件一起 1.uploadExample.jsp <%@ page contentType="text/ht ...

  9. JSP中文件上传的关键步骤

    1.在JSP文件中使用page指令导入Commons-FileUpload组件所需的类. 2.判断请求信息中的内容是否是multipart类型,如果是则进行处理. 3.通过FileItemFactor ...

最新文章

  1. “画中画”效果--谈IFRAME标签的使用
  2. Unable to find 'struts.multipart.saveDir' property setting.
  3. MySQL优化:数据量很大,分页查询很慢,有什么优化方案?
  4. 保点发布RFID鲜肉跟踪方案
  5. 如何在CentOS 7上安装Kubernetes Docker群集
  6. 计算机的原理两条分别是,微机原理习题答案4
  7. 话说模式匹配(1) 什么是模式?
  8. 数据科学家教你用数据模型来泡妞
  9. 【风电功率预测】基于matlab EMD优化LSTM风电功率预测【含Matlab源码 1402期】
  10. sqlserver 分割多个文件_鸿萌易备:SQL Server 数据库的全方位备份解决方案
  11. 旅游后台管理系列——使用maven tomcat插件启动web工程
  12. 继承ActionSupport 实现Action与属性驱动传参
  13. RiceQuant开源项目Rqalpha运行演示策略的错误“ERROR 'figure' is an unknown keyword argument”...
  14. 室外巡检项目搭建仿真环境
  15. vr直播是如何实现的?vr直播都有哪些优势
  16. Karl Guttag:Magic Leap 2光学解析,部分指标超HoloLens 2
  17. html微信投票,微信投票报名h5系统制作
  18. quartus II 18.1 下载
  19. “第二届openGauss每日一练打卡活动” 获奖名单公布!
  20. 白嫖高级神器,不付费真香!

热门文章

  1. 无法显示论坛的登陆验证码
  2. IOS控件的应用UIPageController与UIScrollView
  3. 用VS Code打造最佳Markdown编辑器
  4. UCMap移动GIS 时空地图GIS
  5. 机器学习工程师 - Udacity 癌症检测深度学习
  6. 11.21 if条件语句 年月日执行判断
  7. APUE(7)---进程环境
  8. 游戏开发工具之纹理打包器-3.使用GDI+绘图
  9. Dalvik/ART(ANDROID)中的多线程机制(1)
  10. hibernate demo 搭建