没有文件上传的普通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文件的下载和上传功能的实现相关推荐

  1. jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能

     Ajax file upload plugin是一个功能强大的文件上传jQuery插件,可自定义链接.或其它元素庖代传统的file表单上传结果,可实现Ajax动态提示文件上传 过程,同时支撑多文 ...

  2. SSM框架使用Layui文件上传插件实现多文件上传(多文件列表)

    SSM框架使用Layui文件上传插件实现多文件上传(多文件列表) pom.xml文件的配置 想要实现SSM框架实现多文件上传,必要的jar包必须要在pom.xml文件中引入.如下: <!--co ...

  3. hadoop HDFS的文件夹创建、文件上传、文件下载、文件夹删除,文件更名、文件详细信息、文件类型判断(文件夹或者文件)

    摘要: 本篇文章主要介绍的是hadoop hdfs的基础api的使用.包括Windows端依赖配置,Maven依赖配置.最后就是进行实际的操作,包括:获取远程hadoop hdfs连接,并对其进行的一 ...

  4. 【文件上传漏洞-01】文件上传漏洞概述、防御以及WebShell基础知识补充

    目录 1 文件上传漏洞概述 2 文件上传漏洞防御.绕过.利用 2.1 黑白名单策略 3 WebShell基础知识补充 3.1 WebShell概述 3.2 大马与小马 1 文件上传漏洞概述 概述:文件 ...

  5. php 文件上传mime 类型,php文件上传类型(MIME)对照表

    网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特色),学php的人都知道文件上传怎么做,但很多人在编程中却 ...

  6. 00截断上传绕过_【文件上传与解析】文件上传与解析漏洞总结v1.0

    点击上方"公众号" 可以订阅哦! Hello,各位小伙伴晚上好~ 这里是依旧勤劳写公众号的小编~ 今天本公众号将推出一个新的模块,那就是漏洞知识点总结模块!!!(此处应有掌声~) ...

  7. jquery文件上传插件 uploadify java_jQuery文件上传插件Uploadify使用指南

    对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持 Flash,主要特性:支持多文件上传.HTML5版本可拖拽上传.实时上传进度条显示.强大的参数 定制功能,如文件大小. ...

  8. php 上传文件后缀名,对应PHP文件上传后缀名与文件类型

    Internet上有许多PHP文件上传的处理方法,其实学习PHP的人都知道如何上传文件,但许多人可能会忽略编程中的一些细节,今天爱站技术频道小编为大家介绍对应PHP文件上传后缀名与文件类型. ie 火 ...

  9. 基于OkHttp 、Retrofit 、Volley 、RxJava、Novate多种网络框架整合的快速项目开发框架,一行代码实现Ftp文件上传、文件下载、文件删除和进度监听的工具类的使用

    基于OkHttp .Retrofit .Volley .RxJava.Novate多种网络框架整合的快速项目开发框架,Ftp文件上传.文件下载的工具类的使用. 依赖于Ftp的jar包,对上传.下载.删 ...

  10. php定义上传文件格式,对应PHP文件上传后缀名与文件类型

    Internet上有许多PHP文件上传的处理方法,其实学习PHP的人都知道如何上传文件,但许多人可能会忽略编程中的一些细节,今天爱站技术频道小编为大家介绍对应PHP文件上传后缀名与文件类型. ie 火 ...

最新文章

  1. C语言之字符串处理函数
  2. amount describe
  3. web服务压力测试)有效的压力测试系统将应用以下这些关键条件
  4. 【K8S学习笔记】Part1:使用端口转发访问集群内的应用
  5. 会计电算化的重要物质基础计算机和,湖北工业大学工程技术学院会计电算化管理办法...
  6. 一览R基础包的六个高级绘图函数(盒型boxplot|条形barplot|直方hist|饼pie|dotchart|coplot)...
  7. JavaScript学习(二十一)—scrollTop属性和scrollLeft属性
  8. log4j2日志配置
  9. ECSHOP解决大量重复页面问题,提高SEO效果
  10. opensuse 安装网易云音乐(tumbleweed)(leap)
  11. ubuntu22打开utools报错 缺少libcrypto.so.1.1问题解决
  12. 量子保密通信技术基本原理
  13. 计算机和数学 论文参考文献,数学与计算机参考文献外国 数学与计算机核心期刊参考文献哪里找...
  14. RS232引脚定义及串口通信中与USB等转接
  15. SXF-2021软测实习生笔试
  16. FairyGUI进阶-滑动列表 虚拟列表 循环列表
  17. alt在html不显示信息,html – Firefox不显示来自缓存的图像只有alt文本
  18. VS2015中无法查找或打开 PDB 文件
  19. IFRS9 或中国版IFRS9 会计准则22号的内容和实施概述
  20. 知乎问题:北京,2017,多少k的java web程序员应该懂多线程和jvm优化?

热门文章

  1. Qt界面制作(QSS、获取屏幕分辨率、自定义控件、版权)
  2. Qt工作笔记-仿QQ登录界面(换肤,切换语言)
  3. 3.3栈与递归的实现
  4. c#endread怎么打印出来_C#教程之打印和打印预览
  5. 腾讯Light·公益创新挑战赛获奖名单揭晓!看“创意+公益+科技”融合的力量
  6. java web访问webroot_java web 之 WebRoot和WebContent目录
  7. gtk linux 升级_Linux包系列的知识(附:Ubuntu16.04升级到18.04的案例)
  8. python exchangelib 删除邮件_Python exchangelib在子文件夹中读取邮件 - python
  9. 【C语言笔记初级篇】第二章:分支与循环
  10. (王道408考研数据结构)第七章查找-第三节:B树(基本概念及其操作)