FileList
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
夿³¨ï¼ æ¤ç¹æ§å¨ Web Worker ä¸å¯ç¨ã
FileList æ¥å£è¡¨ç¤ºç± HTML <input> å
ç´ ç files 屿§è¿åç该类åç对象ï¼è¿ä½¿ä½ å¯ä»¥è®¿é®ä½¿ç¨ <input type="file"> å
ç´ éæ©çæä»¶å表ãå®è¿ç¨äºä½¿ç¨ææ¾ API 䏿¾å
¥ Web å
容ä¸çæä»¶åè¡¨ï¼æå
³æ¤ç¨æ³ç详ç»ä¿¡æ¯ï¼è¯·åé
DataTransfer 对象ã
ææ <input> å
ç´ èç¹é½æä¸ä¸ª FileList ç±»åç files 屿§ï¼å
¶å
è®¸è®¿é®æ¤å表ä¸ç项ç®ãä¾å¦ï¼å¦æ HTML å
å«ä»¥ä¸æä»¶è¾å
¥æ¡ï¼
<input id="fileItem" type="file" />
以ä¸ä»£ç è¡å°èç¹æä»¶å表ä¸ç第ä¸ä¸ªæä»¶ä½ä¸º File 对象è·åï¼
const file = document.getElementById("fileItem").files[0];
æ¤æ¥å£è¯å¾å建ä¸å¯ä¿®æ¹çå表ï¼ä¸ºäºä¸ç ´åå·²ç»ä½¿ç¨è¯¥æ¥å£ç代ç ï¼æç»§ç»æ¯æè¯¥æ¥å£ãç°ä»£ API 使ç¨åºäº JavaScript æ°ç»çç±»åæ¥è¡¨ç¤ºåè¡¨ç»æï¼ä»èæä¾è®¸å¤æ°ç»æ¹æ³ï¼åæ¶å¯¹å ¶ä½¿ç¨æ½å é¢å¤çè¯ä¹ï¼ä¾å¦ä½¿å ¶é¡¹ç®ä¸ºåªè¯»ï¼ã
è¿äºåå²åå 并䏿å³çä½ ä½ä¸ºå¼å人ååºè¯¥é¿å
ä½¿ç¨ FileListãä½ ä¸ä¼èªå·±å建 FileList 对象ï¼èæ¯ä»è¯¸å¦ HTMLInputElement.files ä¹ç±»ç API è·åå®ä»¬ï¼å¹¶ä¸è¿äº API å¹¶æªå¼ç¨ã使¯ï¼è¯·æ³¨æä¸ç宿°ç»çè¯ä¹å·®å¼ã
å®ä¾å±æ§
lengthåªè¯»-
æç¤ºåè¡¨ä¸æä»¶æ°éçåªè¯»å¼ã
å®ä¾æ¹æ³
示ä¾
>è®°å½æä»¶å
卿¤ç¤ºä¾ä¸ï¼æä»¬è®°å½ç¨æ·éæ©çæææä»¶çåç§°ã
HTML
<input id="myfiles" multiple type="file" />
<pre class="output">éå®çæä»¶ï¼</pre>
CSS
.output {
overflow: scroll;
margin: 1rem 0;
height: 200px;
}
JavaScript
const output = document.querySelector(".output");
const fileInput = document.querySelector("#myfiles");
fileInput.addEventListener("change", () => {
for (const file of fileInput.files) {
output.innerText += `\n${file.name}`;
}
});
ç»æ
è§è
| è§è |
|---|
| File API > # filelist-section > |
| HTML > # dom-input-files-dev > |