【问题标题】:Converting the image in base64 string in javascript?在javascript中转换base64字符串中的图像?
【发布时间】:2012-10-23 15:40:21
【问题描述】:

我有带有 ENCTYPE="multipart/form-data" 的 html 表单。它只包含从本地浏览文件的“文件”类型的文本框 box.Here是文本框代码sn-p

<td>
    <input name="fileNameAttr" id="filePath" size="52" type="file" value="">
</td>

我从本地框中浏览文件一些图像文件。在我选择文件的那一刻,filePath 会填充到文本框中。 现在单击某个按钮,我想将图像转换为 javascript 中的 base64 字符串。 我没有使用 HTML5。我可以用javascript实现吗?

我可以在网上看到一些使用 HTML5 的解决方案,但这并不能解决我的目的。如果我需要使用一些第三方实用程序,我可以这样做。

编辑:- 看起来 jquery 可以帮助 $.base64.encode("this is a test");但是如何将它与 type="file" 一起使用?

【问题讨论】:

标签: javascript html base64


【解决方案1】:

这可以通过 HTML5 &lt;canvas&gt; 来完成

如果你有 node.js 作为选项 然后 在 img 中尝试类似的东西

&lt;img src="data:image/png;base64,jkasfhsdjkhsadf" /&gt;

例子

var fs = require('fs');
var base64_data = new Buffer(fs.readFileSync('sample.png')).toString('base64');
console.log('<img alt="sample" src="data:image/png;base64,' + base64_data + '">');

检查这个(也是例子的来源)

Data URI scheme

好好读

  1. How can you encode to Base64 using Javascript? //它的图片

【讨论】:

  • @GungFoo 我不明白什么?
  • 被问者要求浏览器内解决方案。 node.js 是否在浏览器中运行? ;)
  • @GungFoo 抱歉,它需要 node.js
【解决方案2】:

如果您可以通过 javascript 访问本地文件系统,什么会阻止您读取密码文件或其他私人数据?

出于显而易见的原因,这是您不能做的,将来也不会被允许!

【讨论】:

  • +1 最有可能的情况。在 HTML5 中有一种方法可以将本地图像加载到画布中,然后 javascript 可以完全访问它(所以有一种方法可以做到这一点)图片但不是一般)
  • 如果您知道直接从客户端访问图像二进制数据的(非大多数仍不受支持 = html5)方式,我非常想听听它,并将相应地删除/编辑我的答案!
  • 你必须是对的,我只是说这可能会在当前几乎不受支持的事物或即将推出的技术中发生变化
  • 我相信如果“即将推出的技术”将允许通过未经验证的第 3 方 ECMA 脚本直接访问您的本地文件系统... intarwebs 将很快被“rm -rf /”编辑。想象一下有人没有从随机网站上的某个评论插件中删除 js/html。任何足够邪恶的人都可以发布两行代码,删除本地驱动器上的所有数据,或者更糟糕的是,将其上传到某个地方。我不相信这样的事情是可行的。
  • 是的,他们不会那样做。但是 JS 可以使用本地文件数据是有正当理由的。 (例如:图片/音乐)
猜你喜欢
  • 2015-12-26
  • 2012-03-14
  • 2019-04-07
  • 2013-07-04
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 2014-07-21
相关资源
最近更新 更多