知识点
相关文章
更多最近更新
更多JAVA实现BASE64编码和解码图片文件
2019-03-04 17:17|来源: ----
有时候会有这样的一个需求,那就是将界面上的图片,或者文件系统的图片进行base64编码,之后存进数据库。
在需要的时候从数据库中讲base64编码提取出来重新生成图片文件。
下面给出一个利用base64编码存取文件系统上的图片的例子:
package com.mai.base64; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.junit.Test; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Base64Test { private String imageURL = "c:/test.png"; @Test public void testBase64Encoder(){ BASE64Encoder encoder = new BASE64Encoder(); try { StringBuilder pictureBuffer = new StringBuilder(); InputStream input = new FileInputStream( new File(imageURL)); ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] temp = new byte[1024]; for(int len = input.read(temp); len != -1; len = input.read(temp)){ out.write(temp, 0, len); pictureBuffer.append(encoder.encode( out.toByteArray())); //out(pictureBuffer.toString()); out.reset(); } out(pictureBuffer.toString()); out("Encoding the picture Success"); BASE64Decoder decoder = new BASE64Decoder(); FileOutputStream write = new FileOutputStream( new File("c:/test2.png")); byte[] decoderBytes = decoder.decodeBuffer( pictureBuffer.toString()); write.write(decoderBytes); out("Decoding the picture Success"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } } public void out(Object o){ System.out.println(o.toString()); } }
转自:http://www.cnblogs.com/mailingfeng/archive/2012/01/09/2317100.html
相关问答
更多-
我已经实现了这一点,通过我的MS Exchange服务器发送西里尔邮件。 function to_base64(t in varchar2) return varchar2 is begin return utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(t))); end to_base64; 尝试一下。 upd:在稍作调整之后,我提出了这个问题,所以现在双向运行: function from_base6 ...
-
编码 public static string Base64Encode(string plainText) { var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); return System.Convert.ToBase64String(plainTextBytes); } 解码 public static string Base64Decode(string base64EncodedData) { v ...
-
哪个Java库提供base64编码/解码?(Which Java library provides base64 encoding/decoding? [duplicate])[2022-12-18]
Java 8 Java 8现在为此java.util.Base64提供了一个附加的实用程序类 byte[] message = "hello world".getBytes(StandardCharsets.UTF_8); String encoded = Base64.getEncoder().encodeToString(message); byte[] decoded = Base64.getDecoder().decode(encoded); System.out.println(encoded) ... -
您可以使用以下方法, // encode data on your side using BASE64 byte[] bytesEncoded = Base64.encodeBase64(str .getBytes()); System.out.println("ecncoded value is " + new String(bytesEncoded )); // Decode data on other side, by processing encoded data byte[] valueDe ...
-
一些浏览器,如Firefox,Chrome,Safari,Opera和IE10 +可以自己处理Base64。 看看这个Stackoverflow问题 。 它使用的是btoa()和atob()函数 。 对于服务器端JavaScript,有一个用于Node.JS的btoa包 。 如果要进行跨浏览器解决方案,那么现有的库就像CryptoJS或代码如下: http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html 使用后者,您需要彻底测试 ...
-
Base64区分大小写。 您正在降低输入数据的大小写。 因此它不会起作用。 Base64 is case sensitive. You're lowering the case on your input data. Therefore it won't work.
-
我的第一个建议是排除故障:确定您是否未能正确编码或解码或两者兼而有之。 使用工作实用程序和您的应用程序对文件进行编码并进行比较。 使用您的应用程序和工作实用程序解码正确编码的文件并进行比较。 第二个建议:将数据作为单个字节处理,而不是可能被解释为UTF-8的文本。 以二进制模式打开PDF文件。 请参阅使用Python读取二进制文件并在每个字节上循环以了解如何执行此操作。 将原始字节传递给base64Encode。 不要使用bin函数将字符串转换为二进制。 I was able to accomplish t ...
-
ember文件上传到rails,用base64编码和解码(ember file upload to rails, encoding and decoding with base64)[2023-03-16]
刚刚在我自己的一个控制器中工作,有两个主要问题: 1)解决编码问题,使用“w:binary”作为写标志而不是“w”(默认为ASCII) 2):datafile参数包括一些标题信息“data:text / csv; base64,SUR4CUluZ ...”,我目前正在拆分“,”但可能更好地解码“base64”以外的所有内容,因为我'我不确定是否允许使用其他逗号。 我的工作代码(略有不同的参数名称): if params.key?(:img_file) header, data = params[:img ... -
编码 : Write $System.Encryption.Base64Encode("text") 解码 : Write $System.Encryption.Base64Decode("dGV4dA==") 注意:Base 64编码无法编码包含unicode(2字节)字符的字符串。 如果你需要Base 64编码一个unicode字符串,你应该首先将字符串转换为UTF8格式,然后对其进行编码。 To encode: Write $System.Encryption.Base64Encode("text") ...
-
我假设您使用Apache的commons-codec,因为Java在标准API中没有类Base64 。 您使用Java端的Base64类中的错误方法。 你必须使用 Base64.encodeBase64(baos.toByteArray()); 您正在使用的方法是以URL安全方式创建base64,而不是默认的base64编码。 有关差异,另请参阅维基百科文章 。 I'm assuming that you use commons-codec from Apache as Java does not hav ...