2010-05-21 52 views
0

加載圖像有沒有辦法來加載javascript中的圖像的全部二進制?
我想要做的就是讓用戶在上傳之前預覽圖像。
即用戶他的本地驅動器(C:\ image.jpg的)上選擇圖像,查看,並決定上載或取消。
我試圖將源代碼設置爲圖像路徑,但由於它位於webapplication項目文件夾之外,所以無法使用。
有幫助嗎?通過JavaScript

回答

2

thx爲您的帖子,但我最終創建了一個臨時文件夾在服務器上存儲使用ajax上傳的圖像。並且當用戶保存數據時,圖像被移動到另一個位置,並且臨時文件夾被刪除。

0

你可以做這樣的事情:

<img id="preview" src="" style="display:none;" /> 

<form> 
.... 
<input type="file" id="file" /> 
.... 
</form> 

<script type="text/javascript"> 
    var file = document.getElementById("file"); 
    var img = document.getElementById("preview"); 

    file.onchange = function(){ 
    img.src = file.value; 
    img.style.display = 'block'; 
    }; 
</script> 
+0

這隻有在IE瀏覽器,而不是Chrome和Firefox – 2010-05-21 13:02:04

+0

的確。 IE有一個古老的bug,它包含完整的客戶端路徑,而不是文件字段值中的文件名。不要讓你的代碼依賴於錯誤。 – BalusC 2010-05-21 13:19:35

0

您需要服務器合作才能訪問映像二進制數據。您將無法使用「上傳表單」訪問文件信息,而無需將其上傳到服務器。

你可以然而做這樣的事情告訴用戶粘貼到一個文本什麼的圖像源的二進制數據,那麼你可以使用JavaScript來加載二進制數據並顯示實際圖像。

0

作爲回答了好幾次,你不能用普通的HTML/JavaScript的做到這一點,由於安全限制。無論如何您都需要發送圖像。但是,您可以使用Java Applet處理此問題,因爲它完全在客戶端計算機上運行,​​並提供比HTML/JS更多的控制。有幾個免費的和現成的。 JumpLoader看起來不錯,一些主要網站也使用它。使用Flash也應該是可能的,但我不確定哪些提供了這種功能。檢查/試用一些Flash Multi File Uploaders

+0

我很難理解downvote,因此我可以在適用的情況下更正/改進答案。是否因爲我在提及ASP標籤的問題中提到過Java Applet?儘管如此,歡迎您:) – BalusC 2010-05-21 16:24:28