vue3 前端多文件上传 文件转换为列表上传,后端使用Django接收

前端代码

<template>
    <el-upload
        ref="uploadv"
        class="upload-demo"
        action="a"
        :on-change="handleChange"
        :file-list="videolist"
        :http-request="uploadFile"
        :auto-upload="false"
    >
        <template #trigger>
            <el-button type="primary">选择文件</el-button>
        </template>
        <el-button class="ml-3" type="success" @click="submitUpload">上传到服务器</el-button>
        <template #tip>
            <div class="el-upload__tip" style="color: red">
                选择视频
            </div>
        </template>
    </el-upload>

</template>

<script>
import axios from "axios";

export default({
    data(){
        return{
            videolist:[]
        }
    },
    methods: {
        handleChange(file, fileList){
            this.videolist = fileList;
        },
        submitUpload(){
            this.$refs.uploadv.submit();   

            let data = new FormData();

            let config = []
            this.videolist.forEach(
				(val, index) => {
					// 这里添加的 key 相同, FormData会自动转换为文件列表
					data.append('filename', val.raw);
				}
			);

            axios.post('url', data).then((response)=>{
                if(response.status == 201)
                {
                	// 上传成功
                    this.videolist = []
                }
            })
        },
        uploadFile(){

        }
    }
})
</script>

后端代码

def methods(request):
	# 文件列表
	file_list = request.FILES.getlist('filename')
	for i in file_list:
		models.objects.create(file=i)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值