【问题标题】:How to send a file via Axios to Laravel如何通过 Axios 发送文件到 Laravel
【发布时间】:2017-08-11 23:25:18
【问题描述】:

我需要通过 Axios 将文件从客户端发布到服务器。

这是我的 Vuejs 代码:

methods: {
    'successUpload': function (file) {
        const config = { headers: { 'Content-Type': 'multipart/form-data' } };
        axios.post('/Upload/File',file, config).then(function (response) {
            console.log(response.data);
        });
    }
}

这是我处理发送文件的 Laravel 代码:

public function uploadFile(Request $request)
{
    if($request->hasFile('file'))
      return "It's a File";

    return "No! It's not a File";
}

但它总是返回No It's not a File

任何帮助将不胜感激。

【问题讨论】:

  • 你能说明你是怎么打电话给successUpload的吗?
  • 我正在使用 Dropzonejs 上传文件
  • 仅供参考,但如果您使用的是 dropzone,则无需使用 axios 进行文件上传。
  • 请告诉我怎么做?带有url 属性?
  • 它超出了这个问题的范围,但是如果您打开一个新问题并提供实际初始化的代码Dropzone,我会很乐意提供帮助。

标签: php laravel vue.js vuejs2 axios


【解决方案1】:

您必须创建一个 FormData 对象并附加图像文件。

methods: {
  'successUpload': function (file) {

    let data = new FormData();
    data.append('file', document.getElementById('file').files[0]);

    axios.post('/Upload/File',data).then(function (response) {
        console.log(response.data);
    });
  }
}

一个例子是here

让我知道这是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2021-05-22
    • 2015-08-24
    • 2021-08-29
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多