首頁 >web前端 >前端問答 >javascript中有沒有file對象

javascript中有沒有file對象

WBOY
WBOY原創
2022-06-29 17:25:511791瀏覽

javascript中有file對象;file對象代表一個文件,用於讀寫文件訊息,該對象繼承了Blob對象,並擴展了與文件系統相關的功能,所有可以使用Blob對象的場合都可以使用file物件;可以利用「new File(fileParts, fileName, [options])」建構器來取得file物件。

javascript中有沒有file對象

本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

javascript中有file物件

File 物件

#File 物件代表一個文件,用來讀寫文件資訊。它繼承了 Blob 對象,或者說是一種特殊的 Blob 對象,所有可以使用 Blob 物件的場合都可以使用它。

最常見的使用場合是表單的檔案上傳控制項(),使用者選取檔案以後,瀏覽器就會產生一個數組,裡面是每個使用者選取的文件,它們都是 File 實例物件。

// HTML 代码如下
// <input id="fileItem" type="file">
var file = document.getElementById(&#39;fileItem&#39;).files[0];
file instanceof File // true

上面程式碼中,file是使用者選取的第一個文件,它是 File 的實例。

建構子

瀏覽器原生提供一個File()建構函數,用來產生 File 實例物件。

new File(array, name [, options])

File()建構子接受三個參數。

array:一個數組,成員可以是二進位物件或字串,表示檔案的內容。

name:字串,表示檔案名稱或檔案路徑。

options:配置對象,設定實例的屬性。此參數可選。

第三個參數配置對象,可以設定兩個屬性。

type:字串,表示實例物件的 MIME 類型,預設值為空字串。

lastModified:時間戳,表示上次修改的時間,預設為Date.now()。

下面是一個例子。

var file = new File(
  [&#39;foo&#39;],
  &#39;foo.txt&#39;,
  {
    type: &#39;text/plain&#39;,
  }
);

實例屬性和實例方法

File 物件有以下實例屬性。

File.lastModified:最後修改時間

File.name:檔案名稱或檔案路徑

File.size:檔案大小(單位位元組)

File.type:檔案的MIME 類型

var myFile = new File([], &#39;file.bin&#39;, {
  lastModified: new Date(2018, 1, 1),
});
myFile.lastModified // 1517414400000
myFile.name // "file.bin"
myFile.size // 0
myFile.type // ""

上面程式碼中,由於myFile的內容為空,也沒有設定MIME 類型,所以size屬性等於0,type屬性等於空字串。

File 物件沒有自己的實例方法,由於繼承了 Blob 對象,因此可以使用 Blob 的實例方法slice()。

擴充知識:

有兩種方式可以取得它。

第一種,與Blob 類似,有一個建構器:

new File(fileParts, fileName, [options] )

  • fileParts —— Blob/BufferSource/String 類型值的陣列。

  • fileName —— 檔名字串。

  • options —— 可選物件:

    • lastModified —— 最後一次修改的時間戳記(整數日期)。

第二種,input 標籤

更常見的是,我們從&lt ;input type="file">或拖放或其他瀏覽器介面來取得檔案。在這種情況下,file 將從作業系統(OS)獲得 this 資訊。

由於File 是繼承自Blob的,所以File 物件具有相同的屬性,附加:

  • name —— 檔案名,
  • lastModified —— 最後一次修改的時間戳。

這就是我們從<input type="file"> 中取得File 物件的方式:

<input><script>function showFile(input) {
  let file = input.files[0];

  alert(`File name: ${file.name}`); // 例如 my.png
  alert(`Last modified: ${file.lastModified}`); // 例如 1552830408824}</script>

#詳細點:
javascript中有沒有file對象
請注意:

輸入(input)可以選擇多個文件,因此input.files 是一個類別數組物件。這裡我們只有一個文件,所以我們只取
input.files[0]。

【相關推薦:javascript影片教學web前端

以上是javascript中有沒有file對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn