{"id":11983,"date":"2022-02-06T18:16:02","date_gmt":"2022-02-06T09:16:02","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=11983"},"modified":"2022-02-06T18:17:15","modified_gmt":"2022-02-06T09:17:15","slug":"%ec%9b%b9%ec%97%90%ec%84%9c-file-%ec%84%a0%ed%83%9d%ed%95%98%ea%b8%b0%ed%8c%8c%ec%9d%bc-%ec%97%b4%ea%b8%b0-%eb%8c%80%ed%99%94%ec%83%81%ec%9e%90-or-%ed%8c%8c%ec%9d%bc-%eb%93%9c%eb%9e%98%ea%b7%b8","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=11983","title":{"rendered":"\uc6f9\uc5d0\uc11c File \uc120\ud0dd\ud558\uae30(\ud30c\uc77c \uc5f4\uae30 \ub300\ud654\uc0c1\uc790 or \ud30c\uc77c \ub4dc\ub798\uadf8&#038;\ub4dc\ub78d)"},"content":{"rendered":"<p>\uc6f9\uc5d0\uc11c \ud30c\uc77c\uc744 \uc120\ud0dd\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc0ac\uc6a9\uc790\uc758 \ud589\uc704\uac00 \ud544\uc694\ud55c\ub370, \ud30c\uc77c \uc5f4\uae30 \ub300\ud654\uc0c1\uc790\ub97c \ud1b5\ud574 \ud30c\uc77c\uc744 \uc120\ud0dd\ud574 \uc8fc\uac70\ub098 \ud30c\uc77c\uc744 \ub4dc\ub798\uadf8\ud574\uc11c \uc6f9\ube0c\ub77c\uc6b0\uc800\uc5d0 \ub4dc\ub78d\ud574\uc918\uc57c\ud569\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \ud30c\uc77c\uc744 \ub4dc\ub78d\ud574\uc11c \ub5a8\uad74 \uc601\uc5ed\uc744 \ub9c8\ub828\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">\r\n<div id=\"main-layout\">\r\n    <gwc-label content=\"\ud30c\uc77c\"><\/gwc-label>\r\n    <gwc-card class=\"card\">\r\n        <div class=\"file-zone\">\r\n            \uc774\uacf3\uc744 \ud074\ub9ad\ud558\uac70\ub098 <br>\uc774\uacf3\uc5d0 \ud30c\uc77c\uc744 \ub4dc\ub798\uadf8 \ud558\uc138\uc694.\r\n        <\/div>\r\n        <input type=\"file\" \/>\r\n    <\/gwc-card>\r\n<\/div>\r\n<\/pre>\n<p>.file-zone\uc5d0 \ub300\ud55c div \uc601\uc5ed\uc774 \ud30c\uc77c\uc744 \ub4dc\ub78d\ud574\uc11c \ub5a8\uad74 \uc601\uc5ed\uc785\ub2c8\ub2e4.<\/p>\n<p>JS \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nfileZone.addEventListener(\"drop\", (event) => {\r\n    const files = event.dataTransfer.files;\r\n    const file = files[0];\r\n    if(file) {\r\n        processFile(file);\r\n    }\r\n\r\n    event.preventDefault();\r\n});\r\n\r\nfileZone.addEventListener(\"dragover\", (event) => {\r\n    event.preventDefault();\r\n});\r\n<\/pre>\n<p>processFile\uc740 \ub5a8\uad70 \ud30c\uc77c\uc744 \ucc98\ub9ac\ud558\ub294 \ud568\uc218\uc778\ub370\uc694. \uc608\ub97c \ub4e4\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nfunction processFile(file) {\r\n    const name = file.name;\r\n    const size = file.size;\r\n    const reader = new FileReader();\r\n\r\n    reader.onload = function() {\r\n        const aBuf = this.result; \/\/ ArrayBuffer\r\n        \/\/const dView = new DataView(aBuf);\r\n        \/\/const validFlag = dView.getUint8(0);\r\n        \/\/const numRecords = dView.getInt32(4, true);\r\n\r\n        const MD5 = CryptoJS.MD5(aBuf).toString();\r\n        const SHA256 = CryptoJS.SHA256(aBuf).toString();\r\n        \r\n        gwcMessage(`Size ${size} bytes<br>MD5 ${MD5}<br>SHA256 ${SHA256}`);\r\n    };\r\n\r\n    const blob = file.slice(0, size);\r\n    reader.readAsArrayBuffer(blob);\r\n}\r\n<\/pre>\n<p>\uc774\uc81c \ud30c\uc77c \uc5f4\uae30 \ub300\ud654\uc0c1\uc790\ub97c \ud1b5\ud574 file\uc744 \uc120\ud0dd\ud574 \ucc98\ub9ac\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc55e\uc11c HTML \ucf54\ub4dc\ub97c \ubcf4\uba74 file \ud0c0\uc785\uc758 input tag\uac00 \uc788\ub294\ub370 \uc774 DOM \uc694\uc18c\ub97c \ud1b5\ud574 \ud30c\uc77c \uc5f4\uae30 \ub300\ud654\uc0c1\uc790\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uc774 DOM \uc694\uc18c\uc758 display\ub294 none\uc73c\ub85c \ud574\uc11c \ud654\uba74\uc5d0 \ubcf4\uc774\uc9c0 \uc54a\ub3c4\ub85d \ud558\ub294\uac8c \uc77c\ubc18\uc801\uc785\ub2c8\ub2e4.<\/p>\n<p>JS \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nconst fileZone = document.querySelector(\".file-zone\");\r\n\r\nfileZone.addEventListener(\"click\", () => {\r\n    document.querySelector(\"input\").click();\r\n});\r\n\r\ndocument.querySelector(\"input\").onchange = function() {\r\n    const file = this.files[0];\r\n    if(file) {\r\n        processFile(file);\r\n    }                \r\n};\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\uc6f9\uc5d0\uc11c \ud30c\uc77c\uc744 \uc120\ud0dd\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc0ac\uc6a9\uc790\uc758 \ud589\uc704\uac00 \ud544\uc694\ud55c\ub370, \ud30c\uc77c \uc5f4\uae30 \ub300\ud654\uc0c1\uc790\ub97c \ud1b5\ud574 \ud30c\uc77c\uc744 \uc120\ud0dd\ud574 \uc8fc\uac70\ub098 \ud30c\uc77c\uc744 \ub4dc\ub798\uadf8\ud574\uc11c \uc6f9\ube0c\ub77c\uc6b0\uc800\uc5d0 \ub4dc\ub78d\ud574\uc918\uc57c\ud569\ub2c8\ub2e4. \uba3c\uc800 \ud30c\uc77c\uc744 \ub4dc\ub78d\ud574\uc11c \ub5a8\uad74 \uc601\uc5ed\uc744 \ub9c8\ub828\ud574 \uc90d\ub2c8\ub2e4. \uc774\uacf3\uc744 \ud074\ub9ad\ud558\uac70\ub098 \uc774\uacf3\uc5d0 \ud30c\uc77c\uc744 \ub4dc\ub798\uadf8 \ud558\uc138\uc694. .file-zone\uc5d0 \ub300\ud55c div \uc601\uc5ed\uc774 \ud30c\uc77c\uc744 \ub4dc\ub78d\ud574\uc11c \ub5a8\uad74 \uc601\uc5ed\uc785\ub2c8\ub2e4. JS \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. fileZone.addEventListener(&#8220;drop&#8221;, (event) => { const files = event.dataTransfer.files; const file = files[0]; &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=11983\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;\uc6f9\uc5d0\uc11c File \uc120\ud0dd\ud558\uae30(\ud30c\uc77c \uc5f4\uae30 \ub300\ud654\uc0c1\uc790 or \ud30c\uc77c \ub4dc\ub798\uadf8&#038;\ub4dc\ub78d)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11983","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11983"}],"version-history":[{"count":3,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11983\/revisions"}],"predecessor-version":[{"id":11985,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11983\/revisions\/11985"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11983"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}