на Vue добавление выбранного файла в FormData заканчивается ошибкой как в v-input-file, так и в типе ввода = «файл».
сообщение об ошибке: не удалось построить «FormData»: параметр 1 не имеет типа «HTMLFormElement».
<template>
<Layout v-if="$store.state.user">
<v-form
id='myform'
name='myForm'
class='myform'
ref="form"
lazy-validation
enctype="multipart/form-data"
method="POST"
>
<!-- FILE UP-LOAD -->
<template>
<v-file-input
:rules="rules_fileInput"
accept="image/png, image/jpeg, image/bmp"
show-size
counter
label="PNG, JPEG, BMP"
placeholder="Pick an image"
prepend-icon="mdi-camera"
@change="onFilePicked"
/>
</template>
<v-btn dark @click="submitForm">
Save
</v-btn>
</v-form>
</Layout>
</template>
<script>
export default {
data: () => ({
imageUpload: null,
}),
methods: {
onFilePicked(file) {
this.imageUpload = file;
},
async submitForm() {
console.log('this.imageUpload:', this.imageUpload) // showing file
//const headersImg = { headers:{ 'Content-Type':'multipart/form-data'}};
const { data } = await axios.post(
url,
new FormData(
`files.${this.imageUpload.name}`,
this.imageUpload,
this.imageUpload.name
)
);
}
введите здесь описание изображения
на изображении выше явно какие-то данные файла.
если я попытаюсь добавить FormData следующим образом:
async submitForm() {
const formData = new FormData();
formData.append(
`files.${this.imageUpload.name}`,
this.imageUpload,
this.imageUpload.name
);
//console.log('...formData:', ...formData);
const urlLocal = 'http://localhost:1337/upload';
const urlLive = 'http://www.events-pr-server.ml/upload';
// client in netlefy, server in heroku with: Allow all Origin - for this demo
try {
const { data } = await axios({
method: 'post',
url: urlLive,
data: formData,
headers: {
'Content-Type': 'multipart/form-data',
// 'Access-Control-Allow-Origin': '*',
},
});
результаты как: Файлы пусты
- tatusCode: 400, ошибка: «Неверный запрос», сообщение: «Неверный запрос»,…}.
- данные: {ошибки: [{id: «Upload.status.empty», сообщение: «Файлы пусты»}]}.
введите здесь описание изображения введите здесь описание изображения
imageUpload
присваивается значение - person Nishant Patel   schedule 16.04.2021HTMLFormElement
это не произойдет, если вы правильно используете компоненты Vuetify - person Nishant Patel   schedule 16.04.2021