zoukankan      html  css  js  c++  java
  • Java base64 添加data URI

      任何语言生成的base64均不会携带data URI,而前端在读取base64时需要携带data URI头

     1     public String getContentType(Path path){
     2         try {
     3             return Files.probeContentType(path);
     4         } catch (IOException e) {
     5             e.printStackTrace();
     6         }
     7         return null;
     8     }
     9 
    10     public String getContentType(byte[] bytes){
    11         MagicMatch match = null;
    12         try {
    13             match = Magic.getMagicMatch(bytes);
    14         } catch (MagicParseException e) {
    15             e.printStackTrace();
    16         } catch (MagicMatchNotFoundException e) {
    17             e.printStackTrace();
    18         } catch (MagicException e) {
    19             e.printStackTrace();
    20         }
    21         return match.getMimeType();
    22     }
    23 
    24     public String encryptToBase64(String filePath) {
    25         if (filePath == null) {
    26             return null;
    27         }
    28         try {
    29             Path path = Paths.get(filePath);
    30             if(Files.exists(path,new LinkOption[]{ LinkOption.NOFOLLOW_LINKS})){
    31                 byte[] b = Files.readAllBytes(path);
    32                 String contentType = getContentType(path);
    33                 String contentType1 = getContentType(b);
    34                 String base64str1 = DatatypeConverter.printBase64Binary(b);  //Java7
    35                 String base64Str = Base64.getEncoder().encodeToString(b);
    36                 // cretate "data URI"
    37                 StringBuilder sb = new StringBuilder();
    38                 sb.append("data:");
    39                 sb.append(contentType);
    40                 sb.append(";base64,");
    41                 sb.append(base64Str);
    42                 return sb.toString();
    43             }
    44             return null;
    45         } catch (IOException e) {
    46             e.printStackTrace();
    47         }
    48         return null;
    49     }
    作者:
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    InApp PurchaseVerifying Store Receipts[6]
    InApp PurchaseTesting a Store [7]
    App Store Review Guidelines
    JAVA基础之一维数组和多维数组
    定位标记
    JSTL常用标签汇总
    struts1.2原理
    struts1.2中的ActionForm
    jdbc连接
    ActionForm与bean的区别
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/14821526.html
Copyright © 2011-2022 走看看