Я пытаюсь использовать multer для отправки CSV в папку my / 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 (файл) в теле ... но опять же, я не действительно хочу "заштриховать" файл на этом этапе ... я? Я просто хочу отправить файл в multer и поместить его в каталог для загрузки ...
Так куда мне идти? Я довольно потерян с этим ...
Спасибо за любую помощь.