文件上传和下载

学习目标:

1文件如何上传

2.相关的API

3.实现上传

4.实现下载

学习内容:

1文件如何上传

要实现Web开发中的文件上传功能,通常需完成两步操作:一是在Web页面中添加上传输入项;二是在Serviet中读取上传文件的数据,并保存到本地硬盘中。接下来,本节将对这两步操作内容进行详细讲解。
由于大多数文件的上传都是通过表单的形式提交给服务器的,因此,要想在程序中实现文件
上传的功能,首先要创建一个用于提交上传文件的表单页面。在页面中,需要使用<in put type="file">标签在Web页面中添加文件上传输入项。
<input type="file">标签的使用需要注意以下两点。
。必须要设置input输入项的name属性,否则浏览器将不会发送上传文件的数据。
。必须将表单页面的method属性设置为post方式,enctype属性设置为“ multiparli  form-data”类型。
需要注意的是,在使用 FileUpload 组件时,要导入commons- fileupload 、jar和commons-io.jar两个JAR包,这两个JAR包可以去Apache官网“ http://commons.apache.org/ ”下载(进入该网址页面后,在 ApacheCommonsProper 下方表格的 Components 列中找到 FileUpload 和lO,单击进入后即可找到下载链接)。

2.相关的API

一、FileItem接口

Fileltem接口用于封装单个表单字段元素的数据,一个表单字段元素对应一个Fileltem对象。为了便于讲解,在此将Fileltem的实现类称为Fileltem类,Fileltem类实现了Serializable接口,因此,支持序列化操作。在FiIeItem类中人素的方法,具体如下。

1. boolean isFormField()方法

isFormField()方法用于判断FileItem类对象封装的数据是一个普通文本表单字段,还是一个文件表单字段,如果是普通表单字段则返回true,否则返回false。

2.String getName()方法

getName()方法用于获得文件上传字段中的文件名。如果FileItem类对象对应的是普通表单字段,getName()方法将返回null,否则,只要浏览器将文件的字段信息传递给服务器,getName()方法就会返回一个字符串类型的结果,如“C:\Sunset.jpg”。

需要注意的是,通过不同浏览器上传的文件,获取到的完整路径和名称都是不一样的。例如,用户使用IE浏览器上传文件,获取到的就是完整的路径“C:\Sunset.jpg”,如果使用其他浏览器,比如火狐,获取到的仅仅是文件名,没有路径,如“Sunset.jpg”。

3.String getFieldName()方法

getFieldName()方法用于获得表单字段元素描述头的name属性值,也是表单标签name属性的值,例如“name=file1”中的“file1”。

4. void write(File file)方法

write()方法用于将Fileltem对象中保存的主体内容保存到某个指定的文件中。如果FileItem对象中的主体内容是保存在某个临时文件中,那么该方法顺利完成后,临时文件有可能会被清除。另外,该方法也可将普通表单字段内容写入到一个文件中,但它主要用于将上传的文件内容保存到本地文件系统中。

5.String getString()方法

getString()方法用于将Fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值