java上传文件的二进制_文件的上传:二进制文件的上传;
***二进制文件上传的方法:
***在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上传文件的二进制_文件的上传:二进制文件的上传;相关推荐
- channelsftp 上传文件为空_文件上传踩坑记及文件清理原理探究
目录 1. 糟糕的异步存储文件实现 2. 异常原因推理 3. 问题解决方式 4. spring清理文件原理 5. tomcat清理文件原理 最近搞一个文件上传功能,由于文件太大,或者说其中包含了比较多 ...
- Java实验9 T3.对二进制数据文件中的所有数据求和
题目要求 (对二进制数据文件中的所有数据求和)假设已经使用DataOutputStream中的writeInt(int)创建一个名为Exercise 19_3.dat的二进制数据文件,文件包含数目不确 ...
- ipynb和py文件一样吗_文件描述符了解一下
作者 | 田伟然 回首向来萧瑟处,归去,也无风雨也无晴. 杏仁工程师,关注编码和诗词. 前言 文件描述符在unix系统中几乎无处不在 网络接口 select.poll.epoll 涉及到文件描述符 ...
- python引入文件并执行_文件操作和导入os模块执行文件和目录管理操作
文件概念以及文本文件和二进制文件的区别 计算机的CPU如果想要访问保存在磁盘上的文件,第一步需要把磁盘上的文件数据加载到内存中.因为内存的读写速度要比磁盘的读写速度快很多. 计算机只能识别0101这种 ...
- httppostedfilebase.saveas后文件被占用_文件过多时ls命令为什么会卡住?
不知道你有没有遇到过当一个文件夹下文件特别多,在下面执行ls命令的时候要等好长时间才能展现出来的问题?如果有,你有想过这是为什么吗,我们该如何解决? 要想深入理解这个的问题产生的原因,我们就需要从文件 ...
- win10文件夹加密_文件加密精灵,保护你的隐私!
官方介绍: 文件加密精灵是一款使用方便,安全可靠的文件加密利器.电脑上的任何文件都能做加密处理,有效的保证你的隐私. 主要功能: 文件加密 .文件夹加密 .软件加密(程序锁.软件锁).文件夹伪装.文件 ...
- 在arm上运行x86动态库_用 qemu-user 在arm linux机器上运行amd64/x86程序
1. qemu-user 是什么 本来, 对于 QEmu, 我只知道它是一个模拟器, 可以像 VirtualBox/VMWare 那样跑一个操作系统, 只不过 QEmu 可以在 AMD64 上面跑针对 ...
- 光盘在电脑上为什么放不出来_铁砂掌这么厉害,为什么上擂台用不出来
实话实说,这是徒弟给我出的题目! 首先,咱们要解决一个问题,就是什么是铁砂掌?简单的说,铁砂掌,就是用铁砂作为媒介,来练掌的方法,就叫铁砂掌! 他的练功方法,大体上,是两种,第一种是做一个卧袋,里面装 ...
- java怎么知道上传文件是否成功_文件包含漏洞之——tomcat CVE-2020-1938漏洞复现
这个漏洞是今年2月份出现的,他的影响范围也是非常广的. 2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020- ...
最新文章
- 牛人博客!!!各大招聘网站信息实时查询浏览【转】
- Log4j 2.x XSD的描述不完整
- 计算机硬件系统都是看得见的,计算机组成硬件系统).doc
- svn 版本升级的问题
- 【数据结构与算法】平衡二叉树、红黑树
- aws docker_如何使用Docker的功能来摆脱AWS Lambda函数的困境
- TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之三 Views
- 七夕来临!来支付宝“结个婚”吧 全国5个省市可用
- 机器学习——特征工程之特征选择
- 在linux内核中操作文件的方法--使用get_fs()和set_fs(KERNEL_DS)
- Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
- javascript简单性能问题及学习笔记
- 安卓模拟器安装教程_安卓模拟器测试总结!究哪个最流畅?内附模拟换IP教程...
- 【绘图】Origin关闭加速模式(speed mode)
- wxid转扫一扫协议加好友
- 12.14黄金白银实时行情分析,黄金原油解套操作策略
- 用google hacking让搜索更高级
- python实训名片管理程序_python实现名片管理系统
- Java中 支持多继承吗?
- 使用css弹性布局,让页面footer底部固定
热门文章
- Vue 3开发的重要提示
- 突发!美国国会发函要求 Facebook 立即停止 Libra 项目
- python批量读取图片并复制入word_提取出 Word 文档里的图片 并利用 python 批量转换格式...
- diff算法_[VUE学习]徒手撸一个虚拟dom+diff算法
- model 创建帖子的方法
- 几点减几点怎么列算式_节日礼品怎么挑选 这几点很关键
- angular ts 表格_angular表格内容滚动实现
- powershell快捷键_关于powershell的知识你知道多少呢
- 函数或变量 rtenslearn_c 无法识别_深度学习的数学-卷积神经网络的结构和变量关系...
- android 图片转base64内存变大了_开发者最喜爱的图片编码格式:opencv编码,解码,显示base64图片...