java实现文件上传下载功能,javaweb文件的下载和上传功能的实现
没有文件上传的普通form表单上传
上传的数值可以在servlet中获取得到
String s_bPublishDate=request.getParameter("fname");
String s_aPublishDate=request.getParameter("lname");
这样就可以在后台得到Input框中输入的数值呢
文件上传和普通的表单上传有什么不一样呢?
。。。。。。。。。。。。。。。。。。
注意在这个有文件提交的form表单中,form中多了 enctype="multipart/form-data"。
表单标签中设置enctype=”multipart/form-data”来确保匿名上载文件的正确编码。
表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.
这个时候,我们input中的内容(所有不论文件还是什么)都变成了二进制格式传递过去了,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的:
FileItemFactory factory=new DiskFileItemFactory();
//FileItemFactory 一个工厂接口,用于创建FileLtem的实例
//DiskFileItemFactory 这实现创建FileLtem的实例保持其内容可以在内存较小的项目,
或者磁盘上的临时文件较大的项目。
ServletFileUpload upload=new ServletFileUpload(factory);
//数据如何个别零件储存是由厂用于创建;一个给定的一部分可能是内存,磁盘,或其他地方。构造该类的一个实例,使用提供的fileitem厂创建实例。
List items=null;便利一个List链表准备接受全部的数据
try {
items=upload.parseRequest(request);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Iterator itr=items.iterator();
//遍历上传的内容,迭代器
while(itr.hasNext()){
//如果迭代器里面还有内容,返回true,返回迭代的下一个元素。并把迭代输出的结果强制转换成Car对象。
FileItem item=(FileItem) itr.next();获得这个元素,然后先后面走。
if(item.isFormField()){
//如果是普通表单,不是文件表单。
String fieldName=item.getFieldName();
//得到数据的name,就是input中name的名字。
if("newsId".equals(fieldName)){
//你要的数据和name比较,看是不是你要的数据。
if(StringUtil.isNotEmpty(item.getString("utf-8"))){
//如果不为空的话。获取item中的值,且转化成了utf-8格式。
news.setNewsId(Integer.parseInt(item.getString("utf-8")));
}
}
if("title".equals(fieldName)){
news.setTitle(item.getString("utf-8"));
}
if("isUserful".equals(fieldName)){
news.setIsUserful(Integer.parseInt(item.getString("utf-8")));
}
if("content".equals(fieldName)){
news.setContent(item.getString("utf-8"));
}
if("author".equals(fieldName)){
news.setAuthor(item.getString("utf-8"));
}
if("typeId".equals(fieldName)){
news.setTypeId(Integer.parseInt(item.getString("utf-8")));
}
if("isHead".equals(fieldName)){
news.setIsHead(Integer.parseInt(item.getString("utf-8")));
}
if("isImage".equals(fieldName)){
news.setIsImage(Integer.parseInt(item.getString("utf-8")));
}
if("isHot".equals(fieldName)){
news.setIsHot(Integer.parseInt(item.getString("utf-8")));
}
if("imageName".equals(fieldName)&&news.getImageName()==null){
if(StringUtil.isNotEmpty(item.getString("utf-8"))){
news.setImageName(item.getString("utf-8").split("/")[1]);
//split("/")[1]不要后面的尾椎,eg .doc
}
}
}else if(!"".equals(item.getName())){
//如果为文件表单
try {
String imageName=DateUtil.getCurrentDateStr()+item.getName();
//这里是我自己给文件取得一个名字。
news.setImageName(DateUtil.getCurrentDateStr()+item.getName());
String filePath=PropertiesUtil.getValue("filePath")+imageName;
//把文件写到那个地方,上传的路径,你懂的。
item.write(new File(filePath));
//把文件写进去就ok了。
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
一个附带上传文件大小限制的上传文件
http://www.cnblogs.com/xdp-gacl/p/4200090.html
java实现文件上传下载功能,javaweb文件的下载和上传功能的实现相关推荐
- jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能
Ajax file upload plugin是一个功能强大的文件上传jQuery插件,可自定义链接.或其它元素庖代传统的file表单上传结果,可实现Ajax动态提示文件上传 过程,同时支撑多文 ...
- SSM框架使用Layui文件上传插件实现多文件上传(多文件列表)
SSM框架使用Layui文件上传插件实现多文件上传(多文件列表) pom.xml文件的配置 想要实现SSM框架实现多文件上传,必要的jar包必须要在pom.xml文件中引入.如下: <!--co ...
- hadoop HDFS的文件夹创建、文件上传、文件下载、文件夹删除,文件更名、文件详细信息、文件类型判断(文件夹或者文件)
摘要: 本篇文章主要介绍的是hadoop hdfs的基础api的使用.包括Windows端依赖配置,Maven依赖配置.最后就是进行实际的操作,包括:获取远程hadoop hdfs连接,并对其进行的一 ...
- 【文件上传漏洞-01】文件上传漏洞概述、防御以及WebShell基础知识补充
目录 1 文件上传漏洞概述 2 文件上传漏洞防御.绕过.利用 2.1 黑白名单策略 3 WebShell基础知识补充 3.1 WebShell概述 3.2 大马与小马 1 文件上传漏洞概述 概述:文件 ...
- php 文件上传mime 类型,php文件上传类型(MIME)对照表
网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特色),学php的人都知道文件上传怎么做,但很多人在编程中却 ...
- 00截断上传绕过_【文件上传与解析】文件上传与解析漏洞总结v1.0
点击上方"公众号" 可以订阅哦! Hello,各位小伙伴晚上好~ 这里是依旧勤劳写公众号的小编~ 今天本公众号将推出一个新的模块,那就是漏洞知识点总结模块!!!(此处应有掌声~) ...
- jquery文件上传插件 uploadify java_jQuery文件上传插件Uploadify使用指南
对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持 Flash,主要特性:支持多文件上传.HTML5版本可拖拽上传.实时上传进度条显示.强大的参数 定制功能,如文件大小. ...
- php 上传文件后缀名,对应PHP文件上传后缀名与文件类型
Internet上有许多PHP文件上传的处理方法,其实学习PHP的人都知道如何上传文件,但许多人可能会忽略编程中的一些细节,今天爱站技术频道小编为大家介绍对应PHP文件上传后缀名与文件类型. ie 火 ...
- 基于OkHttp 、Retrofit 、Volley 、RxJava、Novate多种网络框架整合的快速项目开发框架,一行代码实现Ftp文件上传、文件下载、文件删除和进度监听的工具类的使用
基于OkHttp .Retrofit .Volley .RxJava.Novate多种网络框架整合的快速项目开发框架,Ftp文件上传.文件下载的工具类的使用. 依赖于Ftp的jar包,对上传.下载.删 ...
- php定义上传文件格式,对应PHP文件上传后缀名与文件类型
Internet上有许多PHP文件上传的处理方法,其实学习PHP的人都知道如何上传文件,但许多人可能会忽略编程中的一些细节,今天爱站技术频道小编为大家介绍对应PHP文件上传后缀名与文件类型. ie 火 ...
最新文章
- C语言之字符串处理函数
- amount describe
- web服务压力测试)有效的压力测试系统将应用以下这些关键条件
- 【K8S学习笔记】Part1:使用端口转发访问集群内的应用
- 会计电算化的重要物质基础计算机和,湖北工业大学工程技术学院会计电算化管理办法...
- 一览R基础包的六个高级绘图函数(盒型boxplot|条形barplot|直方hist|饼pie|dotchart|coplot)...
- JavaScript学习(二十一)—scrollTop属性和scrollLeft属性
- log4j2日志配置
- ECSHOP解决大量重复页面问题,提高SEO效果
- opensuse 安装网易云音乐(tumbleweed)(leap)
- ubuntu22打开utools报错 缺少libcrypto.so.1.1问题解决
- 量子保密通信技术基本原理
- 计算机和数学 论文参考文献,数学与计算机参考文献外国 数学与计算机核心期刊参考文献哪里找...
- RS232引脚定义及串口通信中与USB等转接
- SXF-2021软测实习生笔试
- FairyGUI进阶-滑动列表 虚拟列表 循环列表
- alt在html不显示信息,html – Firefox不显示来自缓存的图像只有alt文本
- VS2015中无法查找或打开 PDB 文件
- IFRS9 或中国版IFRS9 会计准则22号的内容和实施概述
- 知乎问题:北京,2017,多少k的java web程序员应该懂多线程和jvm优化?
热门文章
- Qt界面制作(QSS、获取屏幕分辨率、自定义控件、版权)
- Qt工作笔记-仿QQ登录界面(换肤,切换语言)
- 3.3栈与递归的实现
- c#endread怎么打印出来_C#教程之打印和打印预览
- 腾讯Light·公益创新挑战赛获奖名单揭晓!看“创意+公益+科技”融合的力量
- java web访问webroot_java web 之 WebRoot和WebContent目录
- gtk linux 升级_Linux包系列的知识(附:Ubuntu16.04升级到18.04的案例)
- python exchangelib 删除邮件_Python exchangelib在子文件夹中读取邮件 - python
- 【C语言笔记初级篇】第二章:分支与循环
- (王道408考研数据结构)第七章查找-第三节:B树(基本概念及其操作)