分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

文件上传的几种方法

发布时间:2023-09-06 02:12责任编辑:顾先生关键词:文件上传
 
 
一、加enctype="multipart/form-data"
<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
<form action="/test/" method="post" enctype="multipart/form-data"> <!--如果不加这个的话,提交的数据会以键值对提交-->
    {% csrf_token %}
    文件:<input type="file" name=‘test‘><br>
    <input type="submit" value="提交">
</form>
</body>
</html>
def test(request):
    if request.method == ‘POST‘:
        file = request.FILES.get(‘test‘)
        with open(file.name, ‘wb‘) as f:
            for line in file:
                f.write(line)
    return render(request, ‘test.html‘)
 
二、.chunks()
def upload(request):
    """
    保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。
    但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。
    :param request:
    :return:
    """
    if request.method == "POST":
        # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值
        filename = request.FILES["file"].name
        # 在项目目录下新建一个文件
        with open(filename, "wb") as f:
            # 从上传的文件对象中一点一点读
            for chunk in request.FILES["file"].chunks():
                # 写入本地文件
                f.write(chunk)
        return HttpResponse("上传OK")
<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
<form action="/test/" method="post">
    {% csrf_token %}
    文件:<input type="file" name=‘test‘>
    <input type="submit" value="提交">
</form>
</body>
</html>
 
 

文件上传的几种方法

原文地址:https://www.cnblogs.com/changwoo/p/9568516.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved