文件上传路径的配置
- 模型中使用FileField(upload_to=‘相对位置’)
通过upload_to指定上传的位置 - 在项目的根下,新建一个存放上传资源的目录,如media (非必须)
- 在settings.py文件中进行配置
# 配置上传文件的存储位置
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 访问资源上传的路径
MEDIA_URL = "/media/"
配置media的访问方式
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
文件上传对表单的要求
- POST提交
- 设置 enctype=“multipart/form-data”
django 接收文件上传对象
- request.FILES
- get(key) : 获取上传的文件,返回一个InMemoryUploadedFile文件对象
InMemoryUploadedFile文件对象中,要求掌握的属性和方法
-
name : 获取上传的文件名
-
size : 获取文件的大小
-
content_type : 获取文件的真实类型
-
chunks() : 适合读取大文件
photo = request.FILES.get("photo")
for chunk in photo.chunks():
print(chunk)
- read() : 适合小文件的读取