2016-02-05 43 views
3

我使用它希望在通過HTML文件系統中的文件來加載,如在第三方庫文件:的JavaScript創建從URL

<input id="fileupload" type="file" onchange="LoadAndDisplayFile(this.files[0])"> 

這個偉大的工程,但我想將URL傳遞給存儲在服務器上的文件,而不是讓用戶上傳文件。

我試着使用:

var myFile = new File ("path/to/file"); 

,希望我再能夠通過myFileLoadAndDisplayFile() 但我得到以下錯誤:

遺漏的類型錯誤:無法構造「文件':需要2個參數,但只有1個存在。

我確定這是一個noob問題,但是我在這裏錯過了什麼?

+0

取決於「第三方」的劇本做什麼? – Liam

+1

'未捕獲的類型錯誤:未能構造'文件':需要2個參數,但只有1個存在.'好吧,傳遞2個參數,而不是一個 –

+0

http://stackoverflow.com/questions/8390855/how-to-instantiate- a-file-object-in-javascript – Blag

回答

2

您不能創建一個File對象,只給它一個URL。

正確的方法是通過一個HTTP請求獲取文件和讀取它,像這樣的東西:

var blob = null 
var xhr = new XMLHttpRequest() 
xhr.open("GET", "path/to/file") 
xhr.responseType = "blob" 
xhr.onload = function() 
{ 
    blob = xhr.response 
    LoadAndDisplayFile(blob) 
} 
xhr.send() 
+1

感謝您的回答。爲了使你的解決方案工作,我只需要使用:new File([blob],blob)創建一個新的File對象,然後LoadAndDisplayFile(文件) –

+0

好吧,我雖然創建File對象發生在LoadAndDisplayFile函數。 – Mijamo