ドラッグ・アンド・ドロップ で読み込む
ドラッグ・アンド・ドロップ で画像ファイルを読み込みます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <div>ファイルをここにドラッグ</div> <div id="image-view"></div> <script> document.addEventListener('drop', (e) => { e.preventDefault(); e.stopPropagation();
for (const f of e.dataTransfer.files) { console.log('File(s) you dragged here: ', f.path) const img = document.createElement('img'); img.src = f.path; document.getElementById('image-view').appendChild(img); } }); document.addEventListener('dragover', (e) => { e.preventDefault(); e.stopPropagation(); }); </script>
|


ファイル選択ダイアログ で読み込む
ファイル選択ダイアログ で画像ファイルを読み込みます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <input type="file" id="image_uploads" accept="image/png, image/jpeg"> <div id="image-view"></div> <script> document.getElementById('image_uploads').addEventListener('change', (e) => {
for (const f of e.target.files) { console.log('File(s) you dragged here: ', f.path) const img = document.createElement('img'); img.src = f.path; document.getElementById('image-view').appendChild(img); }
}); </script>
|



Electron のネイティブ呼び出しで読み込む
Electron のネイティブシステムを使って、画像ファイルを読み込みます。
この方法は Electron でしか使えません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <button type="button" id="image_uploads">ファイルを選択</button> <div id="image-view"></div> <script> document.getElementById('image_uploads').addEventListener('click', () => { const { dialog } = require('electron').remote; let files = dialog.showOpenDialogSync({ filters: [{ name: 'Images', extensions: ['jpg', 'png', 'gif'] }] })
for (const f of files) { console.log('File(s) you dragged here: ', f) const img = document.createElement('img'); img.src = f; document.getElementById('image-view').appendChild(img); }
}); </script>
|



Electron の エントリーポイント JavaScript を修正
上記方法を試す場合は、BrowserWindow の webPreferences に「enableRemoteModule: true」を追加する必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13
| const { app, BrowserWindow } = require('electron') function createWindow () { const win = new BrowserWindow({ width: 300, height: 300, webPreferences: { nodeIntegration: true, enableRemoteModule: true } }) win.loadFile('./public/index.html') } app.whenReady().then(createWindow)
|
