How to send a file via Axios to Laravel

13,444

You have to create a FormData object and append the image file.

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);
    });
  }
}

An example is here.

Let me know if that works.

Share:
13,444
Hamed Kamrava
Author by

Hamed Kamrava

DevOps enthusiast

Updated on June 07, 2022

Comments

  • Hamed Kamrava
    Hamed Kamrava almost 2 years

    I need to post a File from client to server via Axios.

    Here is my Vuejs code :

    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);
            });
        }
    }
    

    And here is my Laravel code for handling sent file :

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

    But it always returns No It's not a File.

    Any helps would be great appreciated.