vue.js - 如何在 vue.js 中将文件和数据附加到 FormData

标签 vue.js

我正在尝试将上传的文件和数据值附加到 vue.js 中的 FormData。在我的 Controller 中,只能评估文件请求。

data() {
  return (
    file: '',
    categ: ''
  }
}

在我的方法中:

var form = new FormData();
var file = this.file;
var cat = this.categ;
form.append('pics', file, cat);

axios.post('/api', form, { headers:
  { 'Content-Type': 'multipart/form-data' }
}).then (res => console.log(res));  

我做错了什么?

最佳答案

问题是您可能如何从输入中获取文件。

如果您的输入如下所示:

<input type="file"  @change="upload($event)" id="file-input">

然后您会看到使用 $event 获取 file 并将其用作:

methods: {
  upload(event){
    let data = new FormData();
    let file = event.target.files[0];

    data.append('name', 'my-file')
    data.append('file', file)

    let config = {
      header : {
       'Content-Type' : 'multipart/form-data'
     }
    }

    axios.post('/api', data, config).then(
      response => {

      }
    )
  }
}

关于vue.js - 如何在 vue.js 中将文件和数据附加到 FormData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49587831/

相关文章:

javascript - Vue 未定义

javascript - 使用Vue从表单提交中获取输入字段值

javascript - 在没有 Webpack/Bundlers 的情况下在 PHP 中镜像 Vue 组件

javascript - 如何在vue.js中显示富文本内容?

browser - Vue-router,如何防止用户在浏览器中按下后退按钮返回登录屏幕?

node.js - vue socket.io 连接尝试返回 "No ' Access-Control-Allow-Origin' header 存在”即使已设置源也会出现错误

javascript - 我可以在打印 HTML 页面时使用 scoped CSS 吗? (使用 Laravel 和 Vue.js)

unit-testing - 无法读取未定义的属性 'getters' - 使用 Jest 进行 VueJS 单元测试

vue.js - Vue + Laravel 5.4 + 混合 - "Cannot Get/"

vue.js - VueJS v-if = array[index] 不工作