简体   繁体   English

How to submit multiple csv files in laravel using axios (vuejs) and import by laravel excel

[英]How to submit multiple csv files in laravel using axios (vuejs) and import by laravel excel

I'm working with vuejs and want to submit files using axios I try to append files to FormData but it still not working The only thing I know how to do is showing the file's name我正在使用 vuejs 并想使用 axios 提交文件 我尝试将 append 文件发送到 FormData 但它仍然无法正常工作 我唯一知道该怎么做的是显示文件名

<template>
    <div>
        <div class="row">
            <div class="col-lg-9 col-md-9 col-sm-12">
                <div class="form-inline mb-3 pt-3">
                    <label for="date">Date:</label>
                    <input type="date" name="date" id="date" min='2020-05-08' max="" value="" class="form-control my-2 mx-2">
                </div>
                <div class="custom-file mb-3">
                    <input type="file" class="custom-file-input" id="file_upload" name="upfile[]" multiple  @change="showFileNames">
                    <label class="custom-file-label" for="file_upload">Upload</label>
                </div>
                <div id="uploaded_files">
                    <p v-for="(file,index) in files" :key="index">{{file.name}}</p>
                </div>
                <button class="form-control btn btn-outline-primary" id="btn_add" v-on:click="uploadFiles">Submit</button>
            </div>
        </div>
    </div>
</template>

this is script这是脚本

<script>
export default {
    data() {
        return {
            files:[],
        }
    },
    methods: {
        showFileNames(evt){
            this.files = evt.target.files;
        },
        uploadFiles(){
            let formData = new FormData();
            formData.append('files_upload', this.files);
            axios.post('/uploadfile',
                formData, 
                {
                    headers: {
                        'Content-Type': 'multipart/form-data'
                    }
                }
            ).then(function(res){
            });
        }
    },
}
</script>

Finally, I found a way to submit files.最后,我找到了一种提交文件的方法。 just append files in FormData using the loop goes through all files array只是 append 文件在 FormData 使用循环遍历所有文件数组

    let formData = new FormData();
    for (let i = 0; i < this.files.length; i++) {
          formData.append('files_upload[]', this.files[i]);
    }

And in PHP using并在 PHP 中使用

        $files_upload = $request->file('files_upload');
        foreach($files_upload as $file){
            Excel::import(new ModelImport,  $file);
        }

to import to model using Laravel Excel使用 Laravel Excel 导入 model

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM