2012-10-23 87 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

你必須是正確的,我只是說有理由爲什麼這可能會改變目前勉強支持的東西或即將到來的技術 –

相關問題