按步骤来,不然不会出错。。。。。。

1.下载两个文件commons-io和commons-fileupload(直接在Goole搜索这两个关键字,然后直接在apache官方网站下载就行了),然后解压导入他们的jar文件到你的项目中

2.随便写一个上传文件的JSP页面,如下:

<%@ page language="java" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <html> <head> <title>文件上传测试</title> </head> <body> <form method="post" action="<%=request.getContextPath() %>/servlet/FileUpload" enctype="multipart/form-data" > <p><input type="file" name="myfile1" value="浏览文件" /></p> <p><input type="submit" value="上传"/></p> </form> </body> </html>

3.文件上传页面好了以后,就是见项目中建一个servlet文件,我这里建的servlet是FileUpload,在web.xml的配置文件是

<servlet> <servlet-name>FileUpload</servlet-name> <servlet-class>com.cneric.blog.FileUpload</servlet-class> </servlet> <servlet-mapping> <servlet-name>FileUpload</servlet-name> <url-pattern>/servlet/FileUpload</url-pattern> </servlet-mapping>

servlet的代码如下:

package com.cneric.blog; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.DiskFileUpload; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUpload extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); // 构建上传路径 String basePath = getServletContext().getRealPath("/Upload"); System.out.println("path=" + basePath); // 文件上傳部分 boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart == true) { try { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); // 得到所有的表单域,它们目前都被当作FileItem List<FileItem> fileItems = upload.parseRequest(request); Iterator<FileItem> iter = fileItems.iterator(); // 依次处理每个表单域 while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { // 如果item是正常的表单域 String name = item.getFieldName(); String value = item.getString(); System.out.print("表单域名为:" + name + "表单域值为:" + value); } else { // 如果item是文件上传表单域 // 获得文件名及路径 String fileName = item.getName(); System.out.println(fileName); if (fileName != null) { File fullFile = new File(item.getName()); // 如果文件存在则上传 if (fullFile.exists()) { File fileOnServer = new File(basePath, fullFile .getName()); item.write(fileOnServer); System.out.println("文件" + fileOnServer.getName() + "上传成功"); } } } } } catch (Exception e) { e.printStackTrace(); } } else { System.out.println("the enctype must be multipart/form-data"); } // 取得服务器中已有文件的下載列表 List<String> fileListInServer = new ArrayList<String>(); File dir = new File(basePath); String[] children = dir.list(); if (children != null) { for (int i = 0; i < children.length; i++) { fileListInServer.add(children[i]); } } request.setAttribute("downloadList", fileListInServer); // 跳回原頁面 RequestDispatcher dispatcher = request .getRequestDispatcher("/fileupload/test.jsp"); dispatcher.forward(request, response); return; } }

里要注意上传路径的问题,在本例子中,我是将文件上传到项目的一个目录中,在WebRoot目录下

建立一个Upload目录,用于存放上传的文件,则在代码中构建上传的路径为

String basePath = getServletContext().getRealPath("/Upload");

4.然后启动Tomcat,上传文件测试就OK了,然后在Tomcat Webapps目录下面检查文件是否已经上传成功!

其实到这里就已经OK 了

Fileupload使用方法相关推荐

  1. c#后台如何导出excel到本地_C#导出EXCEL方法总结

    下面介绍下我根据网上学习C#中导出EXCEL的几种方法: 一.asp.net导出Excel 1.将整个html全部输出到Excel 此方法会将html中所有的内容,如按钮.表格.图片等全部输出 Vie ...

  2. C# FileUpload使用过程遇到的问题

    转载:https://www.cnblogs.com/loushuibazi/p/3776629.html C# FileUpload 使用过程 从控件列表拖出FileUpload控件放在网页上面,运 ...

  3. Flink JAR包上传和运行逻辑

    https://blog.csdn.net/xianzhen376/article/details/86774348 文章目录 说明 启动ResetServer 注册Handler Upload JA ...

  4. linux环境OpenRASP使用教程,OpenRASP技术分析

    阅读: 11,455 Open­RASP 将新兴的RASP(Run­time Ap­pli­ca­tion Self-Pro­tec­tion)安全防护技术普及化,使其迅速成为企业Web安全防护中的一 ...

  5. [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor自定义上传路径配置...

    在上一篇文章中,我介绍了FCKeditor的一些相关知识以及我在使用过程中碰到的一些问题及解决方案,今天这篇则是主要记录如何通过FCKeditor来分类管理上传的文件. 以下是本文所要介绍的内容: 1 ...

  6. 利用Asp.net MVC处理文件的上传下载

    如果你仅仅只有Asp.net Web Forms背景转而学习Asp.net MVC的,我想你的第一个经历或许是那些曾经让你的编程变得愉悦无比的服务端控件都驾鹤西去了.FileUpload就是其中一个, ...

  7. Asp.net实现MVC处理文件的上传下载删除功能实例教程

    上传于下载功能是程序设计中非常常见的一个功能,在ASP.NET程序开发中有着非常广泛的应用.本文就以实例形式来实现这一功能. 一.概述 如果你仅仅只有Asp.net Web Forms背景转而学习As ...

  8. Liferay开发学习(1)

    Liferay 6.1开发学习(一):环境搭建 一.资源准备 以下资源内容可以在Liferay的官方网站下载,1-3在http://www.liferay.com/downloads/liferay- ...

  9. bottle中文教程

    本教程介绍了Bottle框架的概念和特性,涵盖了基本使用和进阶主题.您可以从头读到尾,或者以后作为使用参考.您或许对动态生成的 API Reference 也感兴趣,它包含了更多的细节,但是并没有太多 ...

最新文章

  1. Silverlight实例_人立方
  2. vscode c++编译报错:‘nullptr’ was not declared in this scope(-std=c++11)
  3. 网页中文乱码--UTF-8和GB2312互转
  4. 微电台│Get产品信息管理指南,和客户谈一场全渠道恋爱!
  5. python名称空间与运用域_Python名称空间和作用域讲座,命名,Namespaces,Scopes
  6. Python数据分析学习笔记:使用SciKit-Learn进行数据规范化
  7. 电信主机托管费用_电信服务器托管价格
  8. Redis常用数据类型介绍、使用场景及其操作命令
  9. C语言标准库写倒计时/已逝时间
  10. CashFiesta注册网赚
  11. error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools,亲测100%安装
  12. sql 查询in的集合元素过多优化方式
  13. 金融学习之八——ARCH和GARCH模型应用
  14. 美国音乐学院计算机音乐专业排名2015年,美国音乐学院排名前100
  15. 【BZOJ】3993: [SDOI2015]星际战争
  16. 海外众筹:kickstarter众筹创建成功项目分享
  17. 中国 省 市 自治区 资料
  18. uos系统不激活能用吗_uos如何激活
  19. 深入浅出对抗性机器学习(AML)
  20. 讲清MVC、MVP、MVVM,看这一篇文章就够了

热门文章

  1. 线性方程组什么时候无解?多个解?唯一解?
  2. 矩阵求导解最小二乘问题
  3. 无人机倾斜摄影全景建模三维数字沙盘电子沙盘人工智能开发教程视频第7课
  4. 计算机专业考研集成电路,准备考研,“控制科学与工程”与“集成电路”,该怎么选?...
  5. C语言函数递归调用实验报告,C语言函数的递归和调用实例分析
  6. java核心之类和对象
  7. 2022暑期杭电第八场
  8. 使用html,css实现简单的导航栏
  9. php简单的功能模块,php中mysql模块部分功能的简单封装
  10. Golang适合高并发场景的原理