ð£ãDOMã4.6 ã¢ããããŒãããããã¡ã€ã«ã®æ å ±ãååŸãã
4.6-1 ãã¡ã€ã«éžæããã¯ã¹ãããæå®ããããã¡ã€ã«ã®æ
å ±ãååŸããŠã¿ãŸãããã
ããã«ã¯ãfiles ããããã£ãå©çšããŸãã
<form>
<label for="file">ãã¡ã€ã«ïŒ </label>
<input id="file" type="file" multiple />//<----------â¢
</form>
let input = document.querySelector("#file");
input.addEventListener(
"change",
function () {
let files = input.files;//<----------â
for (let file of files) { //<----------â¡
console.log( //<----------------â£
`ãã¡ã€ã«åïŒ${file.name}
çš®é¡ïŒ${file.type}
ãµã€ãºïŒ${file.size / 1024}KB
æçµæŽæ°æ¥ïŒ${new Date(file.lastModified)}`
);//<---------------------------â£
} //<------------------------------â¡
},
false
);
files ããããã£ïŒâ ïŒã¯ãæ»ãå€ãšããŠã¢ããããŒãããããã¡ã€ã«çŸ€ ïŒFileListãªããžã§ã¯ãïŒãè¿ããŸãããã£ãŠãâ¡ã§ãfor..ofã«ãŒãã§é ã«ãã¡ã€ã« ïŒFileãªããžã§ã¯ãïŒãåãåºããŠããŸãã
è€æ°ã®ãã¡ã€ã«ãéžæããã«ã¯ã<input type="file">èŠçŽ ã§mutiple屿§ãä»äžããªããã°ãªããªãç¹ã«ã泚ç®ã§ãïŒâ¢ïŒããã ããmutiple屿§ãä»äžããŠããªãå Žåã§ããfilesããããã£ã®æ»ãå€ã¯FileListãªããžã§ã¯ãã§ãã
FiIeãªããžã§ã¯ããååŸã§ããŠããŸãã°ãããšã¯ããã®ããããã£ããåç
§ãããæ
å ±ã«ã¢ã¯ã»ã¹ããã ãã§ãïŒâ£ïŒã以äžã«ãFileãªããžã§ã¯ãã§å©çšã§ãããããªããããã£ããŸãšããŸãã
4.6-2 ããã¹ããã¡ã€ã«ã®å
容ãååŸãã
FileReader ãªããžã§ã¯ããå©çšããããšã§ãååŸããFileãªããžã§ã¯ãã®å
容ãèªã¿èŸŒãããšãã§ããŸãã
ãŸãã¯ããã¡ã€ã«ã®å
容ãããã¹ãã§ããåæã§ãå
容ãèªã¿èŸŒã¿ããã®çµæãããŒãžã«åæ ããŠã¿ãŸãããã
<form>
<label for="file">ãã¡ã€ã«ïŒ </label>
<input id="file" type="file" />
<input id="btn" type="button" value="å
容ã衚瀺" />
</form>
<hr />
<pre id="result"></pre>
let file = document.querySelector("#file");
let reader = new FileReader();
// èªã¿åãæåæã«ããã®å
容ãããŒãžã«åæ
reader.addEventListener( //<-------------------------â
"load",
function () {
document.querySelector("#result").textContent = reader.result;
},
false //<-----------------------------------------------------------â
);
//<---------------â¢
// ãã¿ã³ã¯ãªãã¯ã§ãã¡ã€ã«ã®èªã¿åããéå§
document.querySelector("#btn").addEventListener(
"click",
function () {
reader.readAsText(file.files[0], "UTF-8"); //<-----------------â¡
},
true
);
FileReaderãªããžã§ã¯ããå©çšããã«ã¯ããŸãloadã€ãã³ããªã¹ããŒãå®çŸ©ãããã¡ã€ã«ã®èªã¿èŸŒã¿ã«æåããæã«å®è¡ãã¹ãåŠçãå®çŸ©ããŸãïŒâ ïŒããªã¹ããŒé
äžã§ã¯ãFileReader#resuItããããã£ã§èªã¿èŸŒãã ããã¹ãã«ã¢ã¯ã»ã¹ã§ããŸããããã§ã¯ãresuItããããã£ã®æ»ãå€ãããã®ãŸãŸ<pre id = "resuIt"ïŒèŠçŽ ã«åæ ãããŠããŸãã
ãªããâ ã§ã¯ã€ãã³ããªã¹ããŒãå®çŸ©ããŠããã ãã§ããŸã ãã¡ã€ã«ã®èªã¿èŸŒã¿ãéå§ããŠããããã§ã¯ãããŸãããèªã¿èŸŒã¿ãéå§ããã®ã¯ãreadAsTextã¡ãœããã®åœ¹å²ã§ãïŒâ¡ïŒããã®äŸã§ããã°ããã¿ã³ã¯ãªãã¯æã«readAsTextã¡ãœãããåŒã³åºããŠããŸãã
åŒæ° charsetã®æ¢å®ã¯UTF-8ãªã®ã§ããµã³ãã«ã§ããã°ç¥èšããŠãæ§ããŸããã
4.6-2ãã¡ã€ã«ã®èªã¿èŸŒã¿ã«å€±æããå Žå
FieReader ãªããžã§ã¯ãã§ã¯ãerrorã€ãã³ããªã¹ããŒãç»é²ããŠããããšã§ããã¡ã€ã«ã®èªã¿èŸŒã¿ã«å€±æããå Žåã«ããšã©ãŒã¡ãã»ãŒãžã®è¡šç€ºãªã©ããšã©ãŒåŠçãå®è£
ããããšãã§ããŸãã
以äžã¯ãå
ã»ã©ã®ãµã³ãã«ã«ãšã©ãŒåŠçã远å ããäŸã§ãã
//ãšã©ãŒè¡šç€ºãå®è£
reader.addEventListener(
"error",
function () {
console.log(reader.error.message);
},
false
);
FileReader ãªããžã§ã¯ãã®ã€ãã³ã
loadïŒerrorã€ãã³ãã®ã»ãã«ããFileReaderãªããžã§ã¯ãã§ã¯ã以äžã®ãããªã€ãã³ããçšæãããŠããŸãã
ã€ãã³ã | çºçã¿ã€ãã³ã° |
---|---|
loadstart | èªã¿èŸŒã¿ã®éå§æ |
loadend | èªã¿èŸŒã¿ã®çµäºæïŒæåŠã«é¢ãããªãïŒ |
abort | èªã¿èŸŒã¿ã®äžææ |
progress | Blob ã³ã³ãã³ãã®èªã¿èŸŒã¿æïŒèªã¿èŸŒã¿äžã«é£ç¶ããŠçºçïŒ |
4.6-4ãã€ããªãã¡ã€ã«ã®å
容ãååŸãã
äžèšã®äŸãšåãèŠé ã§ãã€ããªãã¡ã€ã«ã®å
容ãèªã¿èŸŒãããšãã§ããããçç¥ããã
ãã©ãŒã ã§ããå©çšããã¡ãœãã
ãããŸã§ã«ç޹ä»ããã»ãã«ãããã©ãŒã ã«ã¯ããŸããŸãªã¡ãœãã/ããããã£ãçšæãããŠããŸãã
æ¬ã§ããããã¹ãŠã玹ä»ããããšã¯ã§ããªãã®ã§ã以äžã«äž»èŠãªãã®ããŸãšããŠãããŸããæ¥èœããããŸãã«ææ¡ããæãããã«ããŠãã ããã