需要 commons-io与commons-fileupload

首先在jsp中创建一下布局
  1. <%@ page contentType="text/html;charset=UTF-8" language="java"%>
  2. <html>
  3. <head>
  4. <title>$Title$</title>
  5. </head>
  6. <body>
  7. <form action="MyServlet" method="post" enctype="multipart/form-data">
  8. 最简单的文件上传:<input type="file" name="fileupload"/>
  9. 描述:<input type="text" name="desc"/>
  10. <input type="submit" value="submit"/>
  11. </form>
  12. </body>
  13. </html>

然后创建一个servlet类
并在dopost方法中写入上传文件代码
  1. request.setCharacterEncoding("UTF-8");
  2. response.setCharacterEncoding("UTF-8");
  3. //1、创建一个DiskFileItemFactory工厂
  4. DiskFileItemFactory factory =newDiskFileItemFactory();
  5. //2、创建一个文件上传解析器
  6. ServletFileUpload upload =newServletFileUpload(factory);
  7. //解决上传文件名的中文乱码
  8. upload.setHeaderEncoding("UTF-8");
  9. factory.setSizeThreshold(1024*500);//设置内存的临界值为500K
  10. File linshi =newFile("E:\\linshi");//当超过500K的时候,存到一个临时文件夹中
  11. factory.setRepository(linshi);
  12. upload.setSizeMax(1024*1024*5);//设置上传的文件总的大小不能超过5M
  13. try{
  14. // 1. 得到 FileItem 的集合 items
  15. List<FileItem>/* FileItem */items = upload.parseRequest(request);
  16. // 2. 遍历 items:
  17. for(FileItem item : items){
  18. // 若是一个一般的表单域, 打印信息
  19. if(item.isFormField()){
  20. String name = item.getFieldName();
  21. String value = item.getString("utf-8");
  22. System.out.println(name +": "+ value);
  23. }
  24. // 若是文件域则把文件保存到 e:\\files 目录下.
  25. else{
  26. String fileName = item.getName();
  27. long sizeInBytes = item.getSize();
  28. System.out.println(fileName);
  29. System.out.println(sizeInBytes);
  30. InputStream in = item.getInputStream();
  31. byte[] buffer =newbyte[1024];
  32. int len =0;
  33. fileName ="e:\\files\\"+ fileName;//文件最终上传的位置
  34. System.out.println(fileName);
  35. OutputStream out =newFileOutputStream(fileName);
  36. while((len = in.read(buffer))!=-1){
  37. out.write(buffer,0, len);
  38. }
  39. out.close();
  40. in.close();
  41. }
  42. }
  43. }catch(FileUploadException e){
  44. e.printStackTrace();
  45. }
 

JavaWeb实现上传文件的更多相关文章

  1. JavaWeb笔记——上传文件

    jsp上传文件 *<form>标签method属性必须为post,并且添加enctype="multipart/form-data"属性   ------------- ...

  2. javaWeb中使用ajax上传文件

    javaWeb上传图片 上传文件所必要的两个jar包:commons-fileupload.jar.commons-io.jar. jar包下载:github路径 核心代码: String withP ...

  3. JAVAWeb SSH框架 上传文件,如2007的EXCEL

    下面的代码是上传EXCEL的代码,其实,就是在上传文件到服务器,代码都差不多,只是接收的文件的类型改一下即可. 1.jsp 用的是struts2 标签 代码: <s:file name=&quo ...

  4. Javaweb向服务器上传文件以及从服务器下载文件的方法

    先导入jar包 点击下载 commons-fileupload是Apache开发的一款专门用来处理上传的工具,它的作用就是可以从request对象中解析出,用户发送的请求参数和上传文件的流. comm ...

  5. javaWeb开发中关于eclipse等ide重新部署或重启项目等原因造成上传文件丢失问题解决方案

    在开发项目时,有时候需要用到上传功能,比如头像上传等,其文件会保存到服务器中.但是我发现在用eclipse做项目的过程中,每次重新部署项目,原来上传的文件就会丢失. 其原因是因为每次项目修改后,ecl ...

  6. javaweb上传文件夹

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...

  7. [JavaWeb基础] 009.Struts2 上传文件

    在web开发中,我们经常遇到要把文件上传下载的功能,这篇文章旨在指导大家完成文件上传功能 1.首先我们需要一个上传文件的页面. <!--在进行文件上传时,表单提交方式一定要是post的方式, 因 ...

  8. 上传文件服务与web服务分离

    业务场景:1. 后端服务为java web应用,使用tomcat容器,多实例集群化部署.2. 前端使用nginx作为后端应用的反向代理. 业务需求:现在需要在java web应用端上传文件,同时还要能 ...

  9. java+web上传文件夹内的所有文件

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...

随机推荐

  1. hive 日志配置/表头配置

    1.日志配置,拷贝hive/conf下的hive-log4j2.properties.template为hive-log4j2.properties,修改日志目录,接下来在创建hive/logs,目录 ...

  2. for循环中setTimeout,var与let的不同

    先看下面两段代码 for (let i = 0; i < 5; i++) { setTimeout(function () { console.log(i) }, 2000) } for (va ...

  3. js判断两个时间段是否有交集

    //判断两个时间是否有交集 function isDateIntersection(start1, end1, start2, end2) { var startdate1 = new Date(st ...

  4. 一个简易版的Function.prototype.bind实现

    重新看<JavaScript设计模式与开发实践>一书,第32页发现个简易版的Function.prototype.bind实现,非常容易理解,记录在这了. Function.prototy ...

  5. 聊聊PROFINET与PROFIBUS

    1.PROFINET与PROFIBUS从狭义上比,没有可比性,因为他们的物理接口不同,电气特性,不同,波特率不同,电气介质特性不同等等.这样两者的协议是完全没有关联性的,唯一的关联性就是两者都是PI组 ...

  6. OpenMP 并行程序设计入门

    OpenMP 是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的. 0. 一段使用 OpenMP 的并行程序 #include <stdio.h> #inclu ...

  7. hadoop学习笔记(四)——eclipse+maven+hadoop2.5.2源代码

    Eclipse同maven进口hadoop源代码 1)  安装和配置maven环境变量 M2_HOME: D:\profession\hadoop\apache-maven-3.3.3 PATH: % ...

  8. linux nano 命令

    linux nano一linux像pico文本编辑软件,功能少.但是,基本能满足要求

  9. scipy —— 丰富的子包(io、cluster)

    io,顾名思义,input/output,输入输出接口: 1. io Input and output (scipy.io) - SciPy v0.18.1 Reference Guide wavfi ...

  10. jupyter_远程安装&问题

    安装: https://jupyter.readthedocs.io/en/latest/install.html#install 配置 Ubuntu 16.04 LTS 配置 Jupyter not ...