为了账号安全,请及时绑定邮箱和手机立即绑定

无法访问从 axios 请求到 laravel 的上传文件

无法访问从 axios 请求到 laravel 的上传文件

PHP
慕容708150 2022-09-03 16:38:00
我正在为一个项目构建课程部分,其中一个部分中的多个讲座可以有多个文件。我无法将文件发送到Laravel控制器。Vue 表单<input type="file" id="files" name="files[]" ref="resources" multiple @change="onFilesSelect($event, lec_index)">方法onFilesSelect(event, lec_index){            let files_count = event.target.files.length;            var files_data = [];            for(let i = 0;i<files_count;i++){                files_data[i] = event.target.files[i];            }            Vue.set(this.selected_files, lec_index, files_data);            //this.course_files = this.$refs.resources.files;        },表单数据let formData = new FormData();            var selected_files_count = this.selected_files.length;            for(let j=0;j<selected_files_count;j++){                let resources = this.selected_files[j];                formData.append('files['+ j +']', resources);            }Axios post requestconst id = this.current_course_id;            const url = `/create-curriculum/${id}`;            //const url = 'course-uploadfile';            axios.post(url, formData,{                headers: {                    'Content-Type': 'multipart/form-data'                    }                })                .then(response=>{                    console.log(response);                })                .catch(error=>{                    console.log(error);                });显示文件的 Vue 开发工具拉拉维尔控制器public function create_curriculum(Request $request, $id){        $data = $request->all();        print_r($data);}输出Array(    [files] => Array        (            [0] => [object File],[object File]            [1] => [object File],[object File]        ))我无法在 [对象文件] 中查看文件信息。
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

在两种方法进行以下更改后得到了解决方案。


在 Vue 数据对象中添加。form: new FormData


在文件上,选择


onFilesSelect(event, lec_index){

            let files_count = event.target.files.length;

            var files_data = [];

            for(let i = 0;i<files_count;i++){

                files_data.push(event.target.files[i]);

            }

            Vue.set(this.selected_files, lec_index, files_data);

        },

文件上传时


files_store(){

 for(let i = 0; i< this.selected_files.length; i++){

                    for (let j = 0; j < this.selected_files[i].length; j++) {

                        this.form.append('files['+ i +']['+ j +']', this.selected_files[i][j]);

    }

}               


查看完整回答
反对 回复 2022-09-03
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号