Django 上传文件

本文详细介绍了在Django框架中实现文件上传的方法,包括使用form表单上传文件的配置、视图函数处理上传请求的过程,以及如何利用chunks()方法分块上传大文件,最后提到了利用AJAX进行异步文件上传的技术要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

views.py

# 上传文件
def upload(request):
    if request.method == "POST":
        file_obj = request.FILES.get("file")
        with open(file_obj.name, "wb") as f:
            # chunks() 一点一点的上传文件
            for chunk in file_obj.chunks():
                f.write(chunk)
    return render(request, "upload.html")

模板

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>
<form action="/upload/"  method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <p>
        <input type="file" name="file">
    </p>
    <p>
        <input type="submit" value="上传">
    </p>
</form>
</body>
</html>

总结:

1、form表单

上传文件,一定要有

enctype="multipart/form-data"

 2、视图

获取文件对象

file_obj = request.FILES.get("file")

获取文件名称

file_obj.name

内置的chunks()方法,按块上传文件

  for chunk in file_obj.chunks():
    f.write(chunk)

 利用AJAX上传文件

需要用到FormData储存数据

并且要加

processData: false,
contentType: false,

 

转载于:https://www.cnblogs.com/wt7018/p/11311383.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值