使用 vuetifyjs v-file-input 进行图片上传

Using vuetifyjs v-file-input for image upload

我正在尝试使用 v-file-input 组件将图像上传到 s3 存储桶,但是当我尝试获取照片时,它显示为空对象

<v-file-input
    v-model='test'
    type='file'
></v-file-input> 

当我调用 'this.test' 作为要上传的文件时,它显示为一个空文件,尽管 'this.test.name' 显示了文件的名称...我确信这非常简单而且我想得太多了,我尝试使用 'FileReader' 和 readAsDataUrl 读取文件,但它只是将其读取为 base64,我也尝试过 FormData 无济于事

我认为你做错了什么。这是一个超级简单的片段,file 对象绝对不为空:

new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data: () => ({
    file: null,
    imageUrl: null
  }),

  methods: {
    upload() {
      // the file object is not empty
      console.log(this.file);
      
      // post file to server
      const formData = new FormData();
      formData.append('file', this.file);

      const options = {
        method: 'POST',
        body: formData,
      };

      fetch('https://httpbin.org/post', options).then(response => response.json())
        .then(data => console.log(data));
    }
  }
})
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@6.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">

<div id="app">
  <v-app id="inspire">
    <v-file-input v-model='file' accept="image/*" @change="upload"></v-file-input>
  </v-app>
</div>



<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>