JavaWeb学习笔记之文件上传下载&JavaMail

这篇博客详细介绍了JavaWeb中的文件上传和下载操作,包括页面要求、多部件表单、上传方法和注意事项。同时,博主还深入讲解了JavaMail的邮件协议、BASE64加密以及如何发送带附件的邮件。内容涵盖FileItem接口、DiskFileItemFactory、ServletFileUpload的使用,以及邮件会话、MimeMessage和Transport类的应用。
摘要由CSDN通过智能技术生成


文件上传

页面要求

  1. 上传对表单限制
    (1)method=“post”
    (2)enctype=“multipart/form-data”
    (3)表单中需要添加文件表单项:
	<form action="xxx" method="post" enctype="multipart/form-data">
  		用户名;<input type="text" name="username"/><br/>
  		照 片:<input type="file" name="zhaoPian"/><br/>
  		<input type="submit" value="上传"/>
	</form>
  1. 上传对Servlet限制
    (1)request.getParametere(“xxx”);这个方法在表单为enctype="multipart/form-data"时,它无效,且永远都返回null
    (2)ServletInputStream request.getInputStream();包含整个请求的体

多部件表单的体

  1. 每隔出多个部件,即一个表单项一个部件
  2. 一个部件中自己包含请求头和空行,以及请求体
  3. 普通表单项:
    (1)1个头:Content-Disposition:包含name=“xxxx”,即表单项名称
    (2)体就是表单项的值
  4. 文件表单项:
    (1)2个头:
    Content-Disposition:包含name=“xxxx”,即表单项名称;还有一个filename=“xxx”,表示上传文件的名称
    Content-Type:它是上传文件的MIME类型,例如:image/pjpeg,表示上传的是图片,图上中jpg扩展名的图片
    (2)体就是上传文件的内容

上传方法

1.需要资源
(1)jar包:
commons-fileupload
 commons-fileupload.jar
 commons-io.jar
它会解析request中的上传数据,将一个表单项数据封装到一个FileItem对象中
只需要调用FileItem的方法即可
(2)相关的类:

  • 工厂:DiskFileItemFactory
  • 解析器:ServletFileUpload
  • 表单项:FileItem

2.上传步骤
(1)创建工厂:

	DiskFileItemFactory factory = new DiskFileItemFactory();

(2)创建解析器:

	ServletFileUpload sfu = new ServletFileUpload(factory);

(3)使用解析器来解析request,得到FileItem集合:

	List<FileItem> fileItemList = sfu.parseRequest(request);

FileItem

FileItem是一个接口,它的实现类是DiskFileItem
主要方法:

	boolean isFormField();//判断是否为普通表单项
	String getFieldName();//返回当前表单项的名称
  	String getString(String charset);//返回表单项的值
  	String getName();//返回上传的文件名称
  	long getSize();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值