MIME: Multipurpose Internet Email Extension 多功能Internet 邮件扩充服务
MIME原来是同SMTP协议来起应用来,后来广泛应用于http等中。
其显著的特点是所有的内容用US-ASCII来显示,一个完整的MIME消息如下:
MIME-version: 1.0
Content-type: multipart/mixed; boundary="frontier"
This is a message with multiple parts in MIME format.
--frontier
Content-type: text/plain
This is the body of the message.
--frontier
Content-type: text/plain
another message
--frontier
Content-type: application/octet-stream
Content-transfer-encoding: base64
PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
--frontier--
它包含一个头和内容体,内容体又可包含多个message, 每个消息有个消息头和消息体。
对于多媒体文件附加上消息加,一般可设置头Content-transfer-encoding为base64编码方式,将二进制流转为字条串方式。
------------------------------------------------------
生成一个MIME文档的例子:
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class MyTest {
public static void main(String[] args){
try{
MimeMultipart mult=new MimeMultipart();
MimeBodyPart part1=new MimeBodyPart();
MimeBodyPart part3=new MimeBodyPart();
part1.setText("abc");
MimeBodyPart part2=new MimeBodyPart();
part2.setText("cdef<aaaa>");
mult.addBodyPart(part1);
mult.addBodyPart(part2);
//System.out.println(mult.toString());
FileDataSource source=new FileDataSource("d:\\temp\\log.jpg");
part3.setDataHandler(new DataHandler(source));
part3.setFileName(source.getName());
part3.setHeader("Content-Transfer-Encoding", "base64");
mult.addBodyPart(part3);
mult.writeTo(System.out);
System.out.println("------part3 is "+part3.getEncoding());
System.out.println("-----encode source is : " + MimeUtility.getEncoding(source));
}catch (Exception e){
e.printStackTrace();
}
}
}</aaaa>
-------------------------------------
Base64指用 a-z、A-Z、0-9 62个基础字符及 "+", "-","/","=" 中的几个 对进制流进行编码,
编码方法是将原来的三个字节变成6*4的方式四个字节, 6位二进制就是64个字符。
-----------------------------------
参考: http://en.wikipedia.org/wiki/MIME
分享到:
相关推荐
MIME-Base64-3.01.tar.gz
Base64是MIME邮件中常用的编码方式之一。它的主要思想是将输入的字符串或数据编码成只含有{ A - Z , a - z , 0 - 9 , + , / }这64个可打印字符的串,故称为“Base64”。
电子邮件MIME协议中的Base64编解码 Base64编解码是MIME协议中的一种常用的编码方式,用于将二进制数据转换为文本数据,以便在电子邮件中传输。下面是 Base64 编解码的知识点: 1. 什么是Base64编解码? Base64编...
离线安装包,亲测可用
离线安装包,亲测可用
`Base64`类提供了更稳定、更健壮且功能丰富的接口,包括对URL和MIME类型的编码支持。开发者应优先考虑使用`java.util.Base64`来替换`sun.misc`中的类。 在实际开发中,了解如何使用BASE64编码和解码是至关重要的,...
1. **邮件系统**:MIME标准规定,非ASCII字符的附件必须先进行Base64编码才能通过邮件系统传递。 2. **HTTP传输**:HTTP协议只支持ASCII字符,Base64编码可以确保二进制数据如图片或文件能在HTTP请求和响应中安全...
乱码察看器顾名思义就是用来察看各种乱码的工具软件,目前支持MIME/BASE64, Quoted-Printable,HZ和UUCode四种形式的编码和解码,通过一些特殊的算法, 本程序还可以解开部分由于字节高位被屏蔽而形成的死乱码...
在Java中,Base64编码和解码通常通过`java.util.Base64`类来实现。这个类提供了几个不同的子类和方法,用于处理各种Base64编码需求。 1. `java.util.Base64.Encoder`: 这个类用于对原始二进制数据进行Base64编码。...
Base64是一种编码机制,常用于在网络上传输二进制数据,因为许多协议(如电子邮件的MIME)只允许ASCII字符。在C/C++中,处理Base64编解码通常需要自定义函数或者利用开源库。这个开源库提供了解决这个问题的方法。 ...
Apache Commons Codec库除了基本的Base64编码,还提供了URL安全和MIME兼容的变种。 3. **Bouncy Castle库** Bouncy Castle是一个著名的开源密码学库,主要用于加密、签名和证书管理,但它也包含Base64编码器/解码...
Base64是一种编码方式,常用于在网络上传输二进制数据,因为许多协议(如电子邮件的MIME)只允许ASCII字符。在这个“base64加密jar包”中,包含了一个名为`sun.misc.BASE64Decoder.jar`的文件,它是Java的一个内置...
总结来说,要在Thymeleaf中显示Base64字符串为图片,关键在于后台将图片字节数组转成Base64字符串并添加MIME类型标识,然后通过ModelAndView传递给前端;在前端,使用Thymeleaf表达式将字符串插入到`<img>`标签的`...
在MIME协议中,有两类常见的编码方式:Quoted-Printable(引号可打印)和Base64,这两种编码主要用于处理包含特殊字符的数据,确保它们能够在电子邮件或其他文本传输系统中正确地编码和解码。 **Quoted-Printable...
8. **编码标准**:Base64有多种变体,如RFC 4648、 MIME以及URL安全的Base64。不同变体对字符集、是否允许换行以及填充规则有不同的规定。在实现时,需要明确所遵循的标准。 9. **使用示例**:在`base64.cpp`和`...
一旦获取到Base64字符串,就可以调用上面的`Base64ToImage`函数,传入Base64字符串和目标保存路径,实现将Base64编码的图片保存到本地。 在项目中,为了提高代码质量,可以对这段代码进行优化,例如添加错误处理、...
在Laravel框架中,开发过程中有时会遇到需要处理base64编码...以上就是关于在Laravel中处理base64编码文件验证的一些核心概念和实践方法。理解并掌握这些知识点,可以帮助你在实际项目中更有效地管理base64编码的数据。
总结来说,"Base64文件图片编码解码双向转换解析预览工具"是一款实用的应用,涵盖了Base64编码与解码的核心功能,特别适合于处理图片和文件的在线转换,而且其预览和暗色背景设计考虑了用户体验,使得处理透明图片...
因此,对于新的项目,推荐使用Java 8及以上版本提供的`java.util.Base64`类,这个类是公开的API,更稳定且功能更强大,提供了Base64编码和解码的各种选项,包括URL安全的变种和MIME格式。 总的来说,Base64编码和...
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二...本资源使用C语言实现Base64加密和解密,可以实现数据的加密和文件的加密,不借助任何的第三方工具,便于移植。