ドラッグ&ドロップでアップロードされたファイルのフルパスを取得しようと考えています。
JavaScript
1let handleFileSelect = (e) => { 2 // ブラウザ上でファイルを開かないようにしておく 3 e.stopPropagation(); 4 e.preventDefault(); 5 let files = e.dataTransfer.files; 6 for (let file of files) { 7 appendElement(file); 8 } 9} 10 11//ここでデータを追加する 12let appendElement = (file) => { 13 if(!file.type.match(/^application/pdf$/)) { 14 console.log('PDF形式以外読み込めません\n>> ' + file.name) 15 return; 16 } 17 let reader = new FileReader() 18 reader.onerror = function() { 19 alert('リーダーを読み込めませんでした') 20 } 21 alert(reader.onload); 22 reader.onload = function(e) { 23 let el = document.createElement('li'); 24 el.textContent = e.target.result; 25 $('#readFileList').appendChild(el); 26 } 27} 28 29let $ = (id) => { 30 return document.querySelector(id) 31};
こちらが該当コードなのですが、ファイルが正常に読み込まれてもreader.onloadがnullのため、li要素が挿入できません。
どなたか解決方法を教えてください。
補足
バックエンドはexpressで構成されていますが、localhost上ではfileReaderが正常に動作しないなんてことはないですよね...?
全体像のないコード断片なのでよくわかりませんけど
> ファイルが正常に読み込まれてもreader.onloadがnullのため、li要素が挿入できません。
このnullの確認って「alert(reader.onload);」の部分の話でしょうか。
だとしたらそのコードの直前でletで宣言してnewして、そのalert文の後に定義しているんだから、そりゃその箇所ではnullなんだろうな、とは思いますけど。
短く書くと
let r = new FireReader()
alert(r.onload)
とやってるのと変わんない。