我正在尝试使用multer将CSV提交到我的/ uploads文件夹。
在我的html中,我有这个:
<v-layout class="marginize">
<v-spacer></v-spacer>
<input type="file" name="csv" style="display: none;" id="myFile" accept=".csv"/>
<v-btn @click="getFile">Select File</v-btn>
<v-btn @click="uploadFile">Upload</v-btn>
<v-spacer></v-spacer>
</v-layout>
顺便说一句,即时通讯还使用了Vue.js和Vuetify。
因此,基本上,“选择文件”按钮@click事件会在隐藏文件输入按钮上触发一个.click()事件。然后,“上传”按钮调用我的api。这就是我感到困惑的地方。
这是我的“ uploadFile”方法:
uploadFile: function(){
let fileSel = document.querySelector('#myFile').files[0]
console.log(fileSel)
api.uploadFile(fileSel)
.then(obj => {
console.log(obj)
})
}
这是api调用:
let uploadFile = (file) => {
fetch('/upload', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: file,
})
.then(res => res.send())
}
从现在开始,一切都应该正常工作,它只是越过了用于文件上传的更多前端内容。首先,我不确定如何传递给api.uploadFile()调用。我正在发送文件信息,但我想发送的不是真正的 我想发送实际的文件..但是我真的不知道该怎么做。 。我认为浏览器不会在任何地方存储实际文件的副本...除非您可以为此使用会话存储?
其次,在我的api调用中。我需要在主体中使用JSON.stringify(file)...但是,我再次确实不想在此点上对文件进行“字符串化”。 。我吗?我只是想将文件发送给multer,然后将其放置在上载目录中...
那我要去哪里?我对此很迷茫...
感谢所有帮助。