【问题标题】:How to submit multiple csv files in laravel using axios (vuejs) and import by laravel excel如何使用axios(vuejs)在laravel中提交多个csv文件并通过laravel excel导入
【发布时间】:2020-12-28 15:00:27
【问题描述】:

我正在使用 vuejs 并想使用 axios 提交文件 我尝试将文件附加到 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>

这是脚本

<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>

【问题讨论】:

    标签: laravel file vue.js axios


    【解决方案1】:

    最后,我找到了一种提交文件的方法。 只需使用循环在 FormData 中附加文件即可遍历所有文件数组

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

    在 PHP 中使用

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

    使用 Laravel Excel 导入模型

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 2021-03-10
      • 1970-01-01
      • 2023-03-23
      • 2020-05-10
      • 1970-01-01
      • 2021-12-22
      • 2019-11-11
      • 2018-12-09
      相关资源
      最近更新 更多