我想寫一個瀏覽器插件,自動將文件上傳到頁面上。所以這將在純Javascript中完成。只通過Javascript觸發文件上傳
這是我/知道:
在計算機中的文件上傳輸入
文件的名稱和位置
input#someId
我想「硬編碼「在console
現在作爲」概念驗證「,但我不能得到它的工作。
我已經嘗試了這兩種方法:
inputElement.click()
爲inputElement
是輸入的querySelector
。使用
initMouseEvent
從what's the equivalent of jquery's 'trigger' method without jquery?但給了我錯誤Uncaught TypeError: Cannot read property 'dispatchEvent' of null
所以我的問題是:
如何觸發點擊文件上傳元素的輸入?
更好:如何完全處理上傳?基本上通過文件名+位置上傳到啓動(當用戶點擊像OK打開從對話框中選擇文件)
更新1:
我是從閱讀本http://www.thecssninja.com/javascript/fileapi 也許上傳文件文件系統是不可能的。如何對這些備選方案:
我們可以從網址(http)的
的文件僅僅是圖像和Javascript中存儲的(Base64)
任何上述的獲取文件應該可以,如果他們可以自動上傳並繞過對話框並通過本地文件系統搜索文件。我在想,如果圖像DOM甚至畫布可以被拖動?
您實際上無法做到這一點,瀏覽器不會讓您以編程方式觸發文件上傳器出於安全目的。必須有用戶交互 – Brennan 2014-10-17 20:10:29
從用戶機器上自動上傳文件將是一個主要的安全風險。文件上傳需要手動用戶交互(因此需要明確同意)。如果您訪問過的網站自動將您的瀏覽器設置上傳到遠程服務器,您是否希望它? – Terry 2014-10-17 20:12:54
http://stackoverflow.com/questions/15249185/local-chrome-extension-to-set-file-of-input-type-file – epascarello 2014-10-17 20:13:24