电子,将文件复制到websrver文件夹

时间:2019-03-21 13:58:54

标签: javascript node.js localhost electron

我正在使用电子对话框访问用户的文件,现在我想将所选文件上传到Web服务器。在我的代码中,我使用的是fs.copyFile,但它向我显示了一个错误,因为它将项目路径添加到了http://localhost/upload

我将很高兴获得任何帮助。谢谢

dialog.showOpenDialog(dialogOptions,function(fileNames) {
        // fileNames is an array that contains all the selected 
        if (fileNames === undefined) {
            console.log("No file selected");

        } else {
            readFile(fileNames[0]);
        }
    });

    function readFile(filepath) {
        fs.readFile(filepath, 'utf-8', (err, data) => {
            if (err) {
                alert("An error ocurred reading the file :" + err.message)
                return
            }

            fileName = pathf.basename(filepath);
            // Copy the chosen file to the application's data path
            fs.copyFile(filepath, 'http://localhost/upload/' + fileName, (err) => {
               if (err) throw err;
           });

            // handle the file content 
            event.sender.send('fileData', data)
            event.sender.send('fileDataPath', filepath)

        })
    }

1 个答案:

答案 0 :(得分:0)

这可以通过以multipart/form-data的形式将数据从Electron应用程序发送到Web服务器来实现。

您可以将Express(这是一个最小的Web框架)与multer Express中间件结合使用,以接受通过multipart/form-data上传的文件,因为您不能仅仅将文件复制到Web服务器。在客户端(电子)上,您必须使用一些http客户端库(例如Axios)通过网络将文件数据发送到Web服务器。