2012-10-23 52 views
2

我有ENCTYPE =“多部分/格式数据”。它只是包含类型“文件”,其从浏览本地 box.Here文件的文本框的html形式的文本框中代码段在JavaScript中转换base64字符串中的图像?

<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”一起使用它?

+0

可能重复的[转换图像到base64在Firefox上的JavaScript](http://stackoverflow.com/questions/7224614/convert-image-to-base64-javascript-on-firefox) –

+0

@Diodeus他想要一个非HTML5方式 –

+0

@RASG,做对字符串编码,而不是在本地图像 –

回答

3

这可以通过HTML5 <canvas>为完成它

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

<img src="data:image/png;base64,jkasfhsdjkhsadf" />

例如

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? //其图像
+0

-1 HTML 5解决方案(他正在寻找更老的东西) –

+0

@BobFincheimer得到了它 –

+0

node.js在浏览器中运行? –

1

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

这你不能这样做,它不能也不会在将来允许,原因是显而易见的!

+0

+1,什么是最有可能的情况下。在HTML5中有一种方法可以将本地图像加载到画布中,然后javascript可以完全访问它(所以有一种方法可以使用图像,但不能在一般情况下使用) –

+0

如果您知道一个(大多数仍然不受支持= html5)直接从客户端访问图像的二进制数据的方式,我非常想听听它,并相应地删除/编辑我的答案! –

+0

你必须是正确的,我只是说有理由为什么这可能会改变目前勉强支持的东西或即将到来的技术 –

相关问题