繁体   English   中英

reader.readAsDataURL导致有缺陷的base64字符串?

[英]reader.readAsDataURL resulting in a defectuous base64 string?

我正在使用以下javascript代码读取文件并将其上传到服务器:

var reader  = new FileReader();
reader.onloadend = function() {
  var bytes = reader.result;
  var ext = file.name.split(".").pop();
  xhr.send("bytes="+bytes+"&type="+ext);
}
reader.readAsDataURL(file);

当我检查将哪些参数发送到服务器(在开发人员控制台中)时,我看到以下内容:

https://imgur.com/a/aO9PMBz

这会导致非法的base64字符错误(我认为是由字符串中的空格引起的)。

有人知道该如何解决吗?

readAsDataURL不会产生干净的base64字符串,而是会产生以下格式的字符串:

data:[<mediatype>][;base64],<data>

这种格式称为数据URI 您可以通过拆分获取原始的base64数据:

const base64 = reader.result.split (",").pop ()

如果您的数据仍然无效,请使用readAsBinaryString (返回文件/博客),然后使用window.btoa将其转换为base64字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM