***二进制文件上传的方法:

***在lib目录下:导入文件上传的开源架包:commons-fileupload-1.2.1.jar,commons-io-2.0.jar;

建立Servlet类:UploadServlet,实现文件上传的方法packagecom.lanqiao.javaweb;

importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileUploadException;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;public class UploadServlet extendsHttpServlet {private static final long serialVersionUID = 1L;public voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {//1. 得到 FileItem 的集合 items//Create a factory for disk-based file items

DiskFileItemFactory factory = newDiskFileItemFactory();//FileCleaningTracker fileCleaningTracker =//FileCleanerCleanup.getFileCleaningTracker(getServletContext());//factory.setFileCleaningTracker(fileCleaningTracker);//Set factory constraints,设置文件的大小

factory.setSizeThreshold(1024 * 500);//超过该大小,就读到临时的文件里面

File tempDirectory = new File("f:\\tempDirectory");

factory.setRepository(tempDirectory);//Create a new file upload handler;上传该文件

ServletFileUpload upload = newServletFileUpload(factory);//Set overall request size constraint;设置文件总的大小

upload.setSizeMax(1024 * 1024 * 5);//Parse the request

try{//获取jsp文件里的请求,在集合中

List /*FileItem*/items =upload.parseRequest(request);//2. 遍历 items:

for(FileItem item : items) {//若是一个一般的表单域, 打印信息

if(item.isFormField()) {

String name=item.getFieldName();

String value=item.getString();

System.out.println(name+ ": " +value);

}//若是文件域则把文件保存到 d:\\files 目录下.

else{//文件名为file

String fieldName =item.getFieldName();//上传的原始的文件名

String fileName =item.getName();

//截取路径名,因为想要获取的是文件名而不是文件的路径

fileName=fileName.substring(3);

//上传的文件的类型

String contentType =item.getContentType();//上传的文件的大小

long sizeInBytes =item.getSize();

System.out.println(fieldName);

System.out.println(fileName);

System.out.println(contentType);

System.out.println(sizeInBytes);

InputStream in=item.getInputStream();byte[] buffer = new byte[1024];int len = 0;//文件上传后的 路径和文件名

fileName = "f:\\files\\" +fileName;

System.out.println(fileName);

OutputStream out= newFileOutputStream(fileName);while ((len = in.read(buffer)) != -1) {

out.write(buffer,0, len);

}

out.close();

in.close();

}

}

}catch(FileUploadException e) {

e.printStackTrace();

}

}

}

web.xml文件配置和映射:

day-14-fileupload

UploadServlet

UploadServlet

com.lanqiao.javaweb.UploadServlet

UploadServlet

/uploadServlet

upload.jsp表单:

Insert title here

File:

Desc:

java上传文件的二进制_文件的上传:二进制文件的上传;相关推荐

  1. channelsftp 上传文件为空_文件上传踩坑记及文件清理原理探究

    目录 1. 糟糕的异步存储文件实现 2. 异常原因推理 3. 问题解决方式 4. spring清理文件原理 5. tomcat清理文件原理 最近搞一个文件上传功能,由于文件太大,或者说其中包含了比较多 ...

  2. Java实验9 T3.对二进制数据文件中的所有数据求和

    题目要求 (对二进制数据文件中的所有数据求和)假设已经使用DataOutputStream中的writeInt(int)创建一个名为Exercise 19_3.dat的二进制数据文件,文件包含数目不确 ...

  3. ipynb和py文件一样吗_文件描述符了解一下

    作者 | 田伟然 回首向来萧瑟处,归去,也无风雨也无晴. 杏仁工程师,关注编码和诗词. 前言 ​文件描述符在unix系统中几乎无处不在 网络接口 select.poll.epoll 涉及到文件描述符 ...

  4. python引入文件并执行_文件操作和导入os模块执行文件和目录管理操作

    文件概念以及文本文件和二进制文件的区别 计算机的CPU如果想要访问保存在磁盘上的文件,第一步需要把磁盘上的文件数据加载到内存中.因为内存的读写速度要比磁盘的读写速度快很多. 计算机只能识别0101这种 ...

  5. httppostedfilebase.saveas后文件被占用_文件过多时ls命令为什么会卡住?

    不知道你有没有遇到过当一个文件夹下文件特别多,在下面执行ls命令的时候要等好长时间才能展现出来的问题?如果有,你有想过这是为什么吗,我们该如何解决? 要想深入理解这个的问题产生的原因,我们就需要从文件 ...

  6. win10文件夹加密_文件加密精灵,保护你的隐私!

    官方介绍: 文件加密精灵是一款使用方便,安全可靠的文件加密利器.电脑上的任何文件都能做加密处理,有效的保证你的隐私. 主要功能: 文件加密 .文件夹加密 .软件加密(程序锁.软件锁).文件夹伪装.文件 ...

  7. 在arm上运行x86动态库_用 qemu-user 在arm linux机器上运行amd64/x86程序

    1. qemu-user 是什么 本来, 对于 QEmu, 我只知道它是一个模拟器, 可以像 VirtualBox/VMWare 那样跑一个操作系统, 只不过 QEmu 可以在 AMD64 上面跑针对 ...

  8. 光盘在电脑上为什么放不出来_铁砂掌这么厉害,为什么上擂台用不出来

    实话实说,这是徒弟给我出的题目! 首先,咱们要解决一个问题,就是什么是铁砂掌?简单的说,铁砂掌,就是用铁砂作为媒介,来练掌的方法,就叫铁砂掌! 他的练功方法,大体上,是两种,第一种是做一个卧袋,里面装 ...

  9. java怎么知道上传文件是否成功_文件包含漏洞之——tomcat CVE-2020-1938漏洞复现

    这个漏洞是今年2月份出现的,他的影响范围也是非常广的. 2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020- ...

最新文章

  1. 牛人博客!!!各大招聘网站信息实时查询浏览【转】
  2. Log4j 2.x XSD的描述不完整
  3. 计算机硬件系统都是看得见的,计算机组成硬件系统).doc
  4. svn 版本升级的问题
  5. 【数据结构与算法】平衡二叉树、红黑树
  6. aws docker_如何使用Docker的功能来摆脱AWS Lambda函数的困境
  7. TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之三 Views
  8. 七夕来临!来支付宝“结个婚”吧 全国5个省市可用
  9. 机器学习——特征工程之特征选择
  10. 在linux内核中操作文件的方法--使用get_fs()和set_fs(KERNEL_DS)
  11. Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
  12. javascript简单性能问题及学习笔记
  13. 安卓模拟器安装教程_安卓模拟器测试总结!究哪个最流畅?内附模拟换IP教程...
  14. 【绘图】Origin关闭加速模式(speed mode)
  15. wxid转扫一扫协议加好友
  16. 12.14黄金白银实时行情分析,黄金原油解套操作策略
  17. 用google hacking让搜索更高级
  18. python实训名片管理程序_python实现名片管理系统
  19. Java中 支持多继承吗?
  20. 使用css弹性布局,让页面footer底部固定

热门文章

  1. Vue 3开发的重要提示
  2. 突发!美国国会发函要求 Facebook 立即停止 Libra 项目
  3. python批量读取图片并复制入word_提取出 Word 文档里的图片 并利用 python 批量转换格式...
  4. diff算法_[VUE学习]徒手撸一个虚拟dom+diff算法
  5. model 创建帖子的方法
  6. 几点减几点怎么列算式_节日礼品怎么挑选 这几点很关键
  7. angular ts 表格_angular表格内容滚动实现
  8. powershell快捷键_关于powershell的知识你知道多少呢
  9. 函数或变量 rtenslearn_c 无法识别_深度学习的数学-卷积神经网络的结构和变量关系...
  10. android 图片转base64内存变大了_开发者最喜爱的图片编码格式:opencv编码,解码,显示base64图片...