我'm trying to read a binary file from the filesystem and then base64 encode it in JavaScript. I'使用FileReader API读取数据并找到base64编码器here .

我的代码似乎接近工作,问题是生成的base64数据是错误的 . 这是我到目前为止所得到的:

function saveResource() {

var file = $(".resourceFile")[0].files[0];

var reader = new FileReader();

reader.onload = function(evt) {

var fileData = evt.target.result;

var bytes = new Uint8Array(fileData);

var binaryText = '';

for (var index = 0; index < bytes.byteLength; index++) {

binaryText += String.fromCharCode( bytes[index] );

}

console.log(Base64.encode(binaryText));

};

reader.readAsArrayBuffer(file);

};

这是我正在测试的文件(它是100x100蓝色方块):

/ 9J / 4AAQSkZJRgABAgAAAQABAAD / 2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL / 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL / wAARCABkAGQDASIAAhEBAxEB / 8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL / 8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4 Tl5ufo6erx8vP09fb3 PN6 / 8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL / 8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3 PN6 / 9oADAMBAAIRAxEAPwDxyiiiv3E8wKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA //ž

...而是我从JavaScript中获得的是:

W7 / DmMO / w6AAEEpGSUYAAQIAAAEAAQAAw7 / DmwBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDLDv8ObAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMsO / w4AAEQgAZABkAwEiAAIRAQMRAcO / w4QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoLw7 / DhADCtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDLCgcKRwqEII0LCscOBFVLDkcOwJDNicsKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5esKDwoTChcKGwofCiMKJworCksKTwpTClcKWwpfCmMKZwprCosKjwqTCpcKmwqfCqMKpwqrCssKzwrTCtcK2wrfCuMK5wrrDgsODw4TDhcOGw4fDiMOJw4rDksOTw5TDlcOWw5fDmMOZw5rDocOiw6PDpMOlw6bDp8Oow6nDqsOxw7LDs8O0w7XDtsO3w7jDucO6w7 / DhAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgvDv8OEAMK1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIywoEIFELCkcKhwrHDgQkjM1LDsBVicsORChYkNMOhJcOxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXrCgsKDwoTChcKGwofCiMKJworCksKTwpTClcKWwpfCmMKZwprCosKjwqTCpcKmwqfCqMKpwqrCssKzwrTCtcK2wrfCuMK5wrrDgsODw4TDhcOGw4fDiMOJw4rDksOTw5TDlcOWw5 fDmMOZw5rDosOjw6TDpcOmw6fDqMOpw6rDssOzw7TDtcO2w7fDuMO5w7rDv8OaAAwDAQACEQMRAD8Aw7HDiijCosK / cTzDgMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooAMKiwoooA8O / w5k =

如果我不得不冒险猜测我会说这个问题与二进制数据中的非打印字符有关(如果我对明文文档进行编码,则可以正常工作) . 但解决这个问题的最佳方法是什么?

Edit

看起来这可能是base64库本身的一个问题(如果不是这样,那么将Uint8Array如何解压缩到用于库调用的字符串中) . 如果我改为使用浏览器的 btoa() 函数,并直接传递给Uint8Array binaryText ,那就行了 . 太糟糕了,所有浏览器都不存在该功能 .

base64 二进制流java_读取和base64编码二进制文件相关推荐

  1. base64位转成二进制流_你知道 Base64 编码中的 64 指的是什么吗?

    最近仔细看了 Base64 编码的原理,觉得还挺有意思,决定写篇文章来聊聊.分别以"超越技术"中的"超","lefe" 中的 "l ...

  2. js如何方便的展示base64二进制流图片文件

    base64 简单地说,它把一些 8-bit 数据翻译成标准 ASCII 字符 Data URI scheme Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入 ...

  3. http传输html图片方式,http怎么样传输图片?二进制流还是base64编码

    面试官问本人http怎么传图片的,本人说二进制流  但他说图片是通过base64编码后传的 本人只是知道这种方法也可行 当时本人也不好得跟他争辩 回来后本人抓包分析后 觉得他说的有问题 .下面是本人用 ...

  4. java中pdf写成base64文件流,Java操作pdf文件与Base64编码相互转换与文件流操作

    1.第一步,引入bc包的安装依赖. 在pom.xml中引入. org.bouncycastle bcprov-jdk15on 1.60 引入后reimport一下项目. 2.pdf文件转换成Base6 ...

  5. base64格式图片转换成二进制流并生成图片文件

    1.base64格式图片转换成二进制流并生成图片文件 /*** 将base64格式的字符串转换成二进制流,并转换成图片*/ public boolean changeBase64ToImage(Str ...

  6. php+打开图片二进制文件,php图片文件、二进制流、base64格式相互转化

    1,php 图片文件.二进制流.base64格式相互转化$image = 'E:/www/logo.png';  //图片文件地址 $type = getimagesize($image)['mime ...

  7. php生成图片文件流,php如何将base64数据流文件转换为图片文件?

    2017-03-07 在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片. 也就是说 ***image/后面的jpg是我们的图片文件格式,(base64,)后面的很大一 ...

  8. 微信小程序下载二进制流图片并转base64位图为png格式

    需求是下载图片并保存到本地,可是小程序请求后端接口下载文件,返回的是二进制流文件.如何处理!不多说,直接上代码 wx.request({url: '接口地址',method: 'get',header ...

  9. java实现将图片读取成base64字符串,将base64字符串存储为图片。

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现将图片读取成base64字符串 ,将base64字符串存储为图片. 将图片转化为字符串以后,由于字符串更方便在网络上通过ajax传输. ...

最新文章

  1. Web服务的性能测试
  2. vue.js 组件之间传递数据
  3. 网站性能测试指标(QPS,TPS,吞吐量,响应时间)详解
  4. javascript 迁移 typescript 实践
  5. ASP.NET Core 进程内(InProcess)托管(6)《从零开始学ASP.NET CORE MVC》:
  6. 后端学习 - JDBC
  7. 90后占六成 花小猪如何吸引年轻人又安全不减配?
  8. Latex学习--参考文献排版(ieee access 模板)
  9. 【Python爬虫】之西瓜视频地址解密20210822
  10. 径向基和径向基神经网路
  11. 极光推送官网android,极光推送(一)——配置
  12. Exception in thread “main“ java.lang.NoSuchMethodException
  13. 你真的会开会吗?开会无用说
  14. 仿花瓣网html模板,仿花瓣网瀑布流实例最流行瀑布流图片无限加载展示
  15. MATLAB06:数字图像处理
  16. Xshell 连接服务器失败的解决方法
  17. 微信公众号关键词自动回复大全
  18. java中用于定义小数的关键字_Java 中用于定义小数的关键字有两个:( ) 和 ( )。_学小易找答案...
  19. PaddlePaddle深度学习7日入门CV篇Summaries
  20. Java中Double与BigDecimal的互转,Date和LocalDateTime互转

热门文章

  1. 模型服务:流处理与使用Java,gRPC,Apache Kafka,TensorFlow的RPC / REST
  2. 记录更新(Java数据类)
  3. 检测和测试停滞的流– RxJava常见问题解答
  4. eclipse中junit_在Eclipse中有效使用JUnit
  5. 展示Java开发人员课程包
  6. 如何添加自动更新Play Framework 2.X项目的版本号
  7. Hibernate自动提交命令强制MySQL在过多的磁盘I / O中运行
  8. 您认为有关垃圾收集的7件事-完全错了
  9. Hazelcast入门指南第6部分
  10. 使用CDI简化JAX-RS缓存