Django实现文件的上传

Django实现文件的上传

1、前端页面:使用file对象,读取文件对象传递到views中。需要设定enctype="multipart/form-data",表明不对字符进行编码。

<body>
    <form method="POST" action="." enctype="multipart/form-data">
     <p align="center">
         <span> 请选择docx文件,默认是xx.docx:</span>
        <input type="file" name="docxfile"/>
        <input type="submit" value="提交"/>
     </p>
</body>

 

2、在views.py中的处理函数,使用chunks()方法

复制代码
def file_upload(request):  # 选择docx文件,并显示在页面
    if request.method == "GET":
        return render(request, 'file_upload.html')
    elif request.method == "POST":
        obj = request.FILES.get('filename')#FILES的对象 
        if obj:
            #print(obj, obj.name)
            file_path = os.path.join('upload', obj.name) #上传文件的路径+文件名
            f = open(file_path, mode="wb") #打开文件对象
            for i in obj.chunks(): #使用chunks()方法读取数据,写入文件
                f.write(i)
            f.close()
        else:
            file_path = os.path.join('upload', 'xxxxxx.docx')#默认文件
        file_str = read_docxfile(file_path)#读取docx文件,传到前端页面显示
    return render(request, 'file_upload.html', {'file_str': file_str})
复制代码

posted on   sdlyxyf  阅读(155)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示