需要 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. 不要放弃使用border-box

    不知道有多少老前端像我这样,在项目中很少使用box-sizing这个属性值.因为CSS2.1中只有content-box这一种盒子模式,在CSS3还没有流行的时候,大家在工作中大量基于这种盒子模式写C ...

  2. selenium firefox 提取qq空间相册链接

    环境: selenium-java 3.9.1 firefox 57.0 geckodriver 0.19.1 1.大概的思路就是模拟用户点击行为,关于滚动条的问题,我是模拟下拉箭头,否则只能每个相册 ...

  3. hadoop 3.x org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=WRITE, inode="/":tele:supergroup:drwxr-xr-x

    权限不足,上传文件时应当使用启动hadoop的账户,即在获取FileSystem时就应当指定用户 修改后的代码 public class Demo1 { public static void main ...

  4. Windows消息:WM_USER与WM_APP的区别

    Windows消息范围及意义 #define WM_USER 0x0400 #define WM_APP 0x8000 0到WM_USER-1 Messages reserved for use by ...

  5. 实现在 .net 中使用 HttpClient 下载文件时显示进度

    在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebC ...

  6. windows 10 常用快捷键

    alt + space:最大.最小.关闭: 多屏互动:win+p 仅此电脑屏幕:复制:拓展:仅第二屏幕: 0. 不同于之前版本的变化 切换输入法:shift + alt: win + space: w ...

  7. Mysql主从复制,读写分离(mysql-proxy)

    Mysql主从复制,读写分离(mysql-proxy) 下面介绍MySQL主从复制,读写分离,双主结构完整构建过程,不涉及过多理论,只有实验和配置的过程. Mysql主从复制(转载请注明出处,博文地址 ...

  8. 简明Python3教程 6.基础

    你肯定不满足于只打印"Hello World"吧? 你想要的更多 - 你希望得到一些输入,操纵它后再从中得到某些东西.我们可以使用python中的常量和变量实现这些功能. 字面常量 ...

  9. WPF在3D Cad模型中利用TextureCoordinates实现颜色渐变显示偏差值的变化

    原文:WPF在3D Cad模型中利用TextureCoordinates实现颜色渐变显示偏差值的变化 注:最近在做3D机械模型重建方面的软件,需要根据光栅传感器采集的数据绘制3D图形,并显示出色差以及 ...

  10. 避免让WPF资源字典变得杂乱臃肿

    原文:避免让WPF资源字典变得杂乱臃肿   避免让WPF资源字典变得杂乱臃肿                            周银辉 今天看到项目种的一个XXXResource.xaml文件代码 ...