js java base64_Base64与文件互转:分别在Java、JS中的转换

今天遇到在Java后台将本地文件转成Base64,然后传至前端ajax异步请求结果,并手动保存文件。我使用的是 java1.8

1、Java中 — — 文件与Base64相互转换

文件 ——> Base64,下面两行代码即可

byte[] b = Files.readAllBytes(Paths.get(filePath));//filePath为D://123.*,*表示任何类型文件

String data_base64 = Base64.getEncoder().encodeToString(b);//取得文件Base64数据

Base ——> 文件,这个还没试过,应该没问题

public String decryptByBase64(String base64, String filePath) {

if (base64 == null && filePath == null) {

return "生成文件失败,请给出相应的数据。";

}

try {

Files.write(Paths.get(filePath),

Base64.getDecoder().decode(base64),StandardOpenOption.CREATE);

} catch (IOException e) {

e.printStackTrace();

}

return "指定路径下生成文件成功!";

}

2、JS中 — — 文件与Base64相互转换

文件 ——> Base64

function getBase64(element) {

// var file = element.files[0];

var file = document.getElementById("file").files[0]

var reader = new FileReader();

reader.readAsDataURL(file);

reader.onload = function (e) {

var data_base64 = this.result; //JS读取后是有头信息的data:image/jpeg;base64,头信息后面才是文件的Base64数据

console.log(data_base64)

}

}

Base ——> 文件

/**

*Base64字符串转二进制

*/

function dataURLtoBlob(dataurl) {

bstr = atob(dataurl),

n = bstr.length,

u8arr = new Uint8Array(n);

while (n--) {

u8arr[n] = bstr.charCodeAt(n);

}

return new Blob([u8arr]);

}

var blob = dataURLtoBlob("去除头信息的纯Base64数据");

var data = new Blob([blob]);

var downloadUrl = window.URL.createObjectURL(data);

var result=document.getElementById("result");

var anchor = document.createElement("a");

anchor.href = downloadUrl;

anchor.download = "下载保存文件到名称.*";//*表示可以是任意类型的文件

anchor.click();

window.URL.revokeObjectURL(data);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值