JavaWeb实现上传文件

需要 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. }
时间: 2024-12-27 15:25:42

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

javaweb:11.上传文件之目录打散

public class Upload3Servlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;

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

下面的代码是上传EXCEL的代码,其实,就是在上传文件到服务器,代码都差不多,只是接收的文件的类型改一下即可. 1.jsp 用的是struts2 标签 代码: <s:file name="upload"> 用form表单提交到Action 2.struts2 代码: <action name="UploadExcel" class="com.javaweb.action.UploadExcelAction"      metho

关于JavaWeb不使用框架上传文件的简单实现

好像最低支持3.0的JavaWeb项目: 前台页面代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="GBK"> 5 <title>测试上传</title> 6 </head> 7 <body> 8 <form action="/fileup/upTest" enctype="multipart

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

在web开发中,我们经常遇到要把文件上传下载的功能,这篇文章旨在指导大家完成文件上传功能 1.首先我们需要一个上传文件的页面. <!--在进行文件上传时,表单提交方式一定要是post的方式, 因为文件上传时二进制文件可能会很大,还有就是enctype属性, 这个属性一定要写成multipart/form-data, 不然就会以二进制文本上传到服务器端 --> <form action="fileUpload.action" method="post"

javaweb基础----使用原生fileupload上传文件时找不到上传的文件位置

上传文件测试时发现控制台没报错,但是在eclipse的workspace中的指定项目下找不到上传的文件 打印输出上传的项目路径时才发现原来在这个位置 D:\code\JavaCode\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps 为避免下次出现同种情况,在新建的server中双击点开设置: 选择第二项即可 原文地址:https://www.cnblogs.com/cjasonvincent/p/8

文件上传工具类——傻瓜式上传文件

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6128382.html 在前面  (http://www.cnblogs.com/ygj0930/p/6073505.html)  我们提到过Javaweb开发的文件上传功能的实现,需要借助第三方jar包,并且要创建factory呀.设置临时文件区路径呀等等,十分繁琐.而作为一个开发人员,不可能每次实现文件上传时都从头到尾做那么多工序.这时候,我们可以把这些繁琐的工作封装起来,把一个个功能做成以供调用的方法.

JavaWeb图片上传的几种方式

一.图片上传介绍 JavaWeb方向编程过程中,实现图片上传有三种方式: 1.传统的基于springMVC的MultipartFile类实现图片上传. 2.基于Ajax的图片上传. 3.基于Base64压缩的图片上传. 二.springMVC图片上传(springboot通用) 此方法的优点是可以将图片和其他的表单元素一起提交到服务器,服务器接受到的图片其实已经存储于容器的临时文件中,进行文件拷贝工作比较简单. 缺点是无法及时看到图片上传的预览效果,图片一旦选择错误只能重新提交. 注:红色代码为

万家报账平台没有“上传文件”按钮的解决办法

在有的电脑没有"上传文件"的按钮? 第一步:首先检查浏览器设置. 第二步:找到IE的Internet选项菜单,开启菜单栏的根据下列方面找,如下图: 第三步:找到Internet选项后,点击,选择安全选项卡,并点击"自定义级别" 第四步:找到"将文件上载到服务器时包含本地目录路径"选择"启用".然后点击确定关闭IE,重启打开. 第五步:更新浏览器的flash版本.在百度中搜索"flash player官网"即

通过jQuery Ajax使用FormData对象上传文件

转自:http://www.cnblogs.com/labnizejuly/p/5588444.html FormData对象,是可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". <form id="uploadForm" enctype="multipart/form-data"> <input id="file" type="file"