0

我正在開發帶選項頁的Chrome擴展。在該頁面上,我放置了一個上傳圖片選項,但無法使用JavaScript加載文件。我嘗試過很多解決方案(1st solution,2nd solution ...),但都沒有成功。奇怪的是,即使在html代碼中的「onclick」屬性也不會調用相應的函數。下面是代碼示例:上傳文件在Chrome擴展選項中不起作用頁面

HTML例如:

<input type="file" name="uploadImage" id="uploadImage" /> 
<button type="submit" id="imageUpload-btn" onclick="myFunction();">Upload</button> 

JavaScript示例:

jQuery("#imageUpload-btn").click(function(){ 
    var image = new Image(); 
    image.src = jQuery("#uploadImage").val(); 
    alert(image.src); 
    image.onload = function(){ 
     alert("on load"); 
    } 
    image.onerror = function(){ 
     alert("error"); 
    } 
}); 

我在第一時間拿到警報的文件的路徑,但隨後總是錯誤警報。函數「myFunction()」不被調用,但如果我直接在瀏覽器中打開文件,「onclick」觸發器將工作,並調用「myFunction()」。

我在做什麼錯,或者我錯過了什麼?

+0

文件輸入的值不是文件的實際路徑(由於瀏覽器的安全性)。你是否打算通過ajax上傳這張圖片? – Musa

+0

如果有可能我只想用javascript上傳它並保存在chrome.storage中。我試過了一個代碼,它將圖像存儲在localStorage中(html5,我是tjik,它是這個頁面[鏈接](http://robnyman.github.io/html5demos/localstorage/)中的一個),但它不會' t在chrome擴展的選項頁中工作,但是如果我直接在瀏覽器中打開option.html文件,它工作正常。它必須是 – Marko

回答

0
<form name="Upload" action="#" enctype="multipart/form-data" method="post"> 
    <p>Filename: <INPUT type="file" name="submitfile" id = "submitfile" /> 
    <INPUT type="button" value="Send" onClick="checkSize();" /> 
    </form> 

在這裏,你在這種類型我們沒有使用enctype="multipart/form-data" opertunity使用

im.src = document.getElementById('submitfile').value; 

你需要去apache.commons.fileupload ServletFileUpload.isMultipartContent(request);這完全是與Java相關的。

+0

,如果你可以爲你提供一些可以幫助你的java代碼。 – 3bu1

+0

謝謝,但我知道如何製作表單並使用服務器端代碼(PHP,JSP,...)獲取POST或GET操作,但我需要使用JavaScript的瀏覽器端代碼,因爲我沒有服務器,需要在瀏覽器端上載它。 – Marko

相關問題