php - 如何通过 Axios 将文件发送到 Laravel

标签 php laravel vue.js vuejs2 axios

我需要通过 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

任何帮助将不胜感激。

最佳答案

您必须创建一个 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 .

如果可行,请告诉我。

关于php - 如何通过 Axios 将文件发送到 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42907747/

相关文章:

javascript - Laravel AJAX 在响应中显示/隐藏按钮

vue.js - (Vue.js) 在模式中滚动也会滚动模式的背面

laravel - Microsoft Azure 符号链接(symbolic link)存储文件夹 Laravel

php - 在此脚本中使用 PDO

php - mysql 查询在 php 中按日期条件过滤特定行?

php - Ratchet + Symfony3 : how to get access to current server from outside

laravel - 在 Laravel 5.4 目录中创建目录

javascript - 如何在 .vue 文件的 <script> 部分的父组件中处理通过 this.$emit 发出的自定义子事件?

javascript - 我可以使用现有的 vue 组件作为单个文件组件吗

php - 如何在我的管理页面中显示数据库