【发布时间】:2013-06-08 17:58:39
【问题描述】:
我想读取文件并使用 FileReader 对象将其转换为 base64 编码字符串。这是我使用的代码:
var reader = new FileReader(); reader.onloadend = 函数(evt){ // 文件被加载 result_base64 = evt.target.result; }; reader.readAsDataURL(文件);但在这种情况下,我在事件处理程序(onLoadEnd 事件)中得到了转换的结果。我想要一个同步方法。有没有办法让“readAsDataURL”方法直接返回“result_base64”变量的值?
【问题讨论】:
-
“我想要一个同步方法。” 有什么特别的原因吗?我认为这是不可能的。
-
firefox 有/有 file.getAsDataURL() 方法,但它已被弃用,并且是任何浏览器的唯一同步版本,afaik。
-
我将路径存储在本地存储数据库中,之后我需要将图像发送到服务器(所有图像都有一个循环,这就是我需要同步方法的原因)。我想避免在数据库中存储base64字符串,以免超过本地存储限制...
-
但是您可以通过例如实现循环在上一张图片的完成回调中调用下一张的上传
-
我想要一些更可重用的东西,可以将文件作为输入并返回 base64 编码的字符串作为输出,但这似乎是不可能的......谢谢你的帮助!
标签: javascript html filereader