我正在Electron中开发一个小应用程序,我可以从中上传图像到Instagram,我被困在第一步之一:/
我想从文件系统中选择一个图像并将其显示在我的应用程序中。
这是我到目前为止得到的代码:
代码:
remote.dialog.showOpenDialog((filenames) => {
fs.readFile(filepath, 'utf-8', (err, data) => {
if(err){
alert("An error ocurred reading the file :" + err.message);
return;
}
});
});
4条答案
按热度按时间3pvhb19x1#
默认情况下,
file://
协议是禁用的。因此,您必须 * 注册您自己的协议 *。感谢nicoNx的回答,其中包括电子协议文档的链接。以下代码是从Electron文档的直接副本:https://www.electronjs.org/docs/latest/api/protocol在你的html中:
如果您遇到问题,请确保将协议附加到正确的浏览器会话。您可以在电子协议文档(上面的链接)中找到有关如何管理浏览器会话的更多详细信息。还请确保在应用程序准备就绪后注册协议。
vsnjm48y2#
一个最小的例子来选择,读取和显示一个png图像。
渲染器进程:::
wb1gzix03#
以下是一个解决方案,其中包含有关
main
进程和renderer
的分离以及es6
的使用的更多信息主进程
渲染进程
mrphzbgm4#
下面的https://www.electronjs.org/docs/api/protocol代码片段适用于electron 11
请注意不要使用通常的
file://
协议,而是使用自定义的'atom'或'my_whatever'协议现在你可以通过这种方式获得图像:
但是,如果你不想在渲染端保留
file
协议的语法,你可以这样做:现在你可以用这种方法得到一个图像
但是,您必须禁用
webSecurity