Электрон, скопируй файл в папку websrver - PullRequest
0 голосов
/ 21 марта 2019

Я использую электронный диалог, чтобы получить доступ к файлам пользователя, теперь я хочу загрузить выбранный файл на веб-сервер.В моем коде я использую 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 голосов
/ 21 марта 2019

Этого можно достичь, отправляя данные в виде multipart/form-data из приложения Electron на веб-сервер.

Вы можете использовать Express , который представляет собой минимальный веб-фреймворк в сочетании с multer Экспресс промежуточное программное обеспечение для принятия загрузки файла через multipart/form-data, поскольку вы не можете просто скопировать файл на веб-сервер.На стороне клиента (Electron) вы должны использовать некоторую клиентскую библиотеку http (например, Axios ) для отправки файловых данных по сети на веб-сервер.

...