Ajax之文件上传处理

5 篇文章 0 订阅

前台处理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/static/jquery3.2.1.js"></script>
    <script src="/static/dist/sweetalert2.all.min.js"></script>
    <link rel="stylesheet" href="/static/dist/sweetalert2.min.css">
    <script src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

    <script>
        $(function () {
            var formData = new FormData();
            formData.append('file', $('#file')[0].files[0]);
            $('#sbt').click(function () {
                $.get({
                    url: '/get_result/',
                    data: formData,
                    done: function (data) {
                        alert('hello,jj')
                    },
                    fail: function () {
                        alert('失败')
                    }
                })
            })
        })

    </script>
</head>
<body>
<form action="/get_result/" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <p>文件<input type="file" name="file" id="file"></p>
    <input type="submit" value="提交" id="sbt">
</form>

</body>
</html>

后台处理

def get_result(request):

    with open(request.FILES.get('file').name, 'wb') as f:
        for item in request.FILES.get('file'):
            f.write(item)
    return HttpResponse('OK')

关键点在于:

前台通过$('#file')[0].files[0]获取上传的文件对象,后台通过request.Files.get('file')获取文件对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值