Django文件上传
一、普通上传方式

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <form action="/upload.html" method="post" enctype="multipart/form-data"> 9 {% csrf_token %} 10 <p><input type="file" name="uploadFile"></p> 11 <div style="position: relative"> 12 <a href="#">自定义上传按钮</a> 13 <input type="submit" value="上传" style="position: absolute;top: 0;left: 0;opacity: 0.2;"> 14 </div> 15 </form> 16 </body> 17 </html>

1 from django.shortcuts import render 2 from django.shortcuts import redirect 3 from django.shortcuts import HttpResponse 4 import os 5 6 # Create your views here. 7 from django import forms 8 from django.forms import fields 9 10 class myForm(forms.Form): 11 uploadFile=fields.FileField(required=True) 12 13 def upload(request): 14 if request.method=="GET": 15 return render(request,"upload.html") 16 else: 17 uploadFile=request.FILES.get("uploadFile") 18 f=open(os.path.join('C:/Users/Administrator/PycharmProjects-forWork/Django_upload/static/img',uploadFile.name),"wb") 19 for i in uploadFile.chunks(): 20 f.write(i) 21 f.close() 22 return HttpResponse("上传完成")
二、Form上传方式

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <form action="/upload.html" method="post" enctype="multipart/form-data"> 9 {% csrf_token %} 10 <p><input type="file" name="uploadFile"></p> 11 <div style="position: relative"> 12 <a href="#">自定义上传按钮</a> 13 <input type="submit" value="上传" style="position: absolute;top: 0;left: 0;opacity: 0.2;"> 14 </div> 15 </form> 16 </body> 17 </html>

1 from django.shortcuts import render 2 from django.shortcuts import redirect 3 from django.shortcuts import HttpResponse 4 import os 5 6 # Create your views here. 7 from django import forms 8 from django.forms import fields 9 10 class myForm(forms.Form): 11 uploadFile=fields.FileField(required=True) 12 13 def upload(request): 14 if request.method=="GET": 15 return render(request,"upload.html") 16 else: 17 obj=myForm(request.POST,request.FILES) 18 if obj.is_valid(): 19 uploadFile=obj.cleaned_data["uploadFile"] 20 f=open(os.path.join('C:/Users/Administrator/PycharmProjects-forWork/Django_upload/static/img',uploadFile.name),"wb") 21 for i in uploadFile.chunks(): 22 f.write(i) 23 f.close() 24 return HttpResponse("上传完成") 25 else: 26 return HttpResponse("上传失败")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~