django+vue上传文件

流程如下:

  • vue文件中:
<template>
    <div>
        <form action="">
             商品图片:<input type="file" id="img"><br>
            <button type="submit" @click.prevent="on_sumit">添加</button>
        </form>
    </div>
</template>

<script>
import axios from 'axios'
export default {
    data(){
        return{
  
        }
    },
    methods: {
        on_sumit(){
            let form_data = new FormData();   # 需要添加其他字段时用这一步,只上传文件则不需要
            var img = document.getElementById('img').files[0];
            form_data.append('image',img,img.name);  # 这里的image和后台views视图文件里获取时的名字要一样,否则获取不到,详情看下面的views 视图文件
            axios({
                url:'http://127.0.0.1:8000/user/addgood/',
                method:'post',
                data:form_data,
                headers: {
                  'Content-Type': 'multipart/form-data'
                 }
            }).then(res=>{
                console.log(res)
            })
        }
    },
}
</script>

  • views 视图文件中
image = request.FILES.get('image')

其他的上传文件步骤一样

你可能感兴趣的:(文件上传,前后端分离上传文件)