2015-09-23 34 views
0

當我們點擊選擇文件。它會打開對話框窗口以選擇要上傳的文件,但我想知道當我們單擊選擇文件時該發生什麼,以及該diolog窗口如何顯示。如何通過輸入類型=文件上傳文件打開窗口對話窗口

在此先感謝。

+2

這是由瀏覽器來處理。它是用本地語言爲您的操作系統構建的,它接受輸入事件並顯示文件對話框。然後,它會接受您選擇的任何文件,並使用該文件向您的服務器打開一個HTTP流,以便將其上傳。它與HTML或JS無關。 – David

+0

#大衛,感謝您的評論,但我需要深入瞭解,應該有一些事件,當我們點擊選擇文件時得到觸發。我需要知道那件事是什麼。那麼如何調用文件上傳的對話窗口。我的操作系統是windows。 –

+0

這只是它:有**沒有** JS事件被調用。這一切都是由瀏覽器自己完成的。我無法訪問他們的源代碼,因此我無法確切地告訴您每個瀏覽器正在使用什麼,但作爲示例,下面介紹如何在VC#中顯示文件對話框:https://msdn.microsoft.com/ EN-US /庫/ aa984392(v = vs.71)的.aspx – David

回答

0

HTML5定義了所有控件文件屬性。該集合是一個FileList,它是一個類似於數組的結構,稱爲FileList,它包含控件中每個選定文件的File對象(請記住,HTML5允許在這些控件中選擇多個文件)。因此,在任何時候,你可以訪問用戶已使用類似下面的代碼選擇的文件:

<input type="file" id="your-files" multiple> 
<script> 
var control = document.getElementById("your-files"); 
control.addEventListener("change", function(event) { 

    // When the control has changed, there are new files 

    var i = 0, 
     files = control.files, 
     len = files.length; 

    for (; i < len; i++) { 
     console.log("Filename: " + files[i].name); 
     console.log("Type: " + files[i].type); 
     console.log("Size: " + files[i].size + " bytes"); 
    } 

}, false); 
</script></code> 

這種相對簡單的代碼偵聽對文件的控制權發生變化的事件。當事件觸發時,它表示文件選擇已更改,並且代碼遍歷每個File對象並輸出其信息。請記住,文件屬性始終可以從JavaScript訪問,因此您不必等待更改才能嘗試讀取它。

欲瞭解更多信息,請查看以下網址。

https://www.nczonline.net/blog/2012/05/08/working-with-files-in-javascript-part-1/

https://en.wikipedia.org/wiki/File_select

相關問題