在电子,如何从它的全文件名上传文件

在我的电子应用程序,我有一个button,说“上传合同”。

点击时,它从存储的合约的文件名即。 /home/users/filename.docx并获取它(不需要一个对话窗口)。

现在,我在使用axios的时候将这个文件作为多部分表单数据上传时遇到了问题。

我已经读过关于这个问题的消息,要求在axios上进行file upload,这导致了这个浏览器上的file upload请求,并且这个pull在node.js中上传 。

我已经阅读了应用程序的一些问题和意见,但似乎有困难让真正的文件正确使用axios上传。

这是我一直在做的事情。

作为浏览器上传

 export function generateContract(fileUrl, customer) { const data = new FormData() const file = fs.createReadStream(fileUrl) data.append('names', customer.names) data.append('email', customer.email) data.append('contract', file) return data } //- In between generateContract & uploadFile function some function //- gets the generatedContract data & push it to uploadFile for axios uploading. //- In API file. export function uploadFile(formData) { return checkConnetion() .then(() => { return axios.post(emailUrl, formData) }) .catch(() => { return axios.post(emailUrlOffline, formData) }) } 

在generatedContract我使用FormData (我假设)是浏览器中的全局函数来创build一个表单实例上传文件。

我也使用fs.createReadStream原因没有它我的file upload看起来像一个对象与三个string(fileUrl成为一个正常的string)。

然而,像这样上传和console.log从我的本地服务器我的请求身体我得到一个绝望

 { names: 'Mwajuma Salmin', email: 'sammwaj@yahoo.com', contract: '[object Object]' } 

合同文件是“[object Object]”。

上传为node.js

一切都是一样的,除了我使用npm的表单数据 。

输出是。

 { '[object FormData]': '' } 

我在哪里搞乱?

我尝试上传邮递员,并手动selectfile upload为表单数据和其他数据(电子邮件和名称),这一切都是成功的!

输出。

 { names: 'maotora', contract: [ File { domain: null, _events: {}, _eventsCount: 0, _maxListeners: undefined, size: 11609, path: '/tmp/upload_0af5c038e147888f0a7b89ad4784a4dc', name: 'Don Joe_08-06-17\'s_contract-for Plot 011.pdf', type: 'application/pdf', hash: null, lastModifiedDate: 2017-09-28T18:56:31.083Z, _writeStream: [Object] } ] } 

我不能在应用程序中使用表单上传(只需上传button,而无需打开对话框来select文件)我只有文件名。

谢谢。