ElectronのWebViewを使用したアプリで、ファイルアップロードを実現
4619 ワード
Electronで<input type="file">
に対してファイルをアップロードするファイルを設定することは、
セキュリティ上できないと思っていたが、下記のコードでアップロードすることに成功したのでメモ。
デバッグ機能を活用するみたい。
upload.js
// wv -- WebView
var wc = wv.getWebContents();
try {
if(wc.debugger.isAttached()) {
wc.debugger.detach();
}
wc.debugger.attach("1.1");
} catch (err) {
console.error("Debugger attach failed : ", err);
}
wc.debugger.sendCommand("DOM.getDocument", {}, function (err, res) {
wc.debugger.sendCommand("DOM.querySelector", {
nodeId: res.root.nodeId,
selector: "#file" // CSS selector of input[type=file] element
}, function (err, res) {
wc.debugger.sendCommand("DOM.setFileInputFiles", {
nodeId: res.nodeId,
files: ['/tmp/tst'] // アップロードしたいファイルパス
}, function (err, res) {
wc.debugger.detach();
});
});
});
Author And Source
この問題について(ElectronのWebViewを使用したアプリで、ファイルアップロードを実現), 我々は、より多くの情報をここで見つけました https://qiita.com/jiey@github/items/d35b4b5ffa96b7bf0baa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .