需要 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. 【BZOJ 1023】[SHOI2008]cactus仙人掌图

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1023 [题意] [题解] 如果不考虑有环的情况; 那么有一个经典的求树的直径的方法; ...

  2. lucene 统计单词次数(词频tf)并进行排序

    public class WordCount { static Directory directory; // 创建分词器 static Analyzer analyzer = new IKAnaly ...

  3. sql操作xml小总结

    一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...

  4. ADO.NET- 中批量添加数据的几种实现方法比较

    在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或for ...

  5. WPF的逻辑树与视觉树(2)Visual容器

    原文:WPF的逻辑树与视觉树(2)Visual容器   一.摘要 虽然我们平时几乎不会从该类派生,但要想了解视觉树就必须要了解Visual,Visual是一个基本抽象类,继承自DependencyOb ...

  6. Linux socket编程示例(最简单的TCP和UDP两个例子)

    一.socket编程 网络功能是Uinux/Linux的一个重要特点,有着悠久的历史,因此有一个非常固定的编程套路. 基于TCP的网络编程: 基于连接, 在交互过程中, 服务器和客户端要保持连接, 不 ...

  7. 【oracle11g,13】表空间管理2:undo表空间管理(调优) ,闪回原理

    一.undo空间原理: dml操作会产生undo数据. update时,sever process 会在databuffer 中找到该记录的buffer块,没有就从datafile中找并读入data ...

  8. 实现网站https

    双击上面的服务器证书 如下图:

  9. Cache memory power reduction techniques

    Methods and apparatus to provide for power consumption reduction in memories (such as cache memories ...

  10. 简明Python3教程 1.翻译

    这里有许许多多本书不同语言的译本,感谢那些不知疲倦的志愿者们! 如果你想帮助这些译本,请参看下面的关于志愿者和语言的列表,然后决定是要开始一个新的翻译项目还是帮助改进现有的翻译项目. 如果你计划开始一 ...