項目根目錄下static文件夾中創(chuàng)建media文件夾

image.png
配置
#settings文件配置下
MEDIR_ROOT = os.path.join(BASE_DIR,'static/media')
#這樣以后上傳的文件就自動保存在這個文件夾中
功能:上傳一張圖片
#HTML頁面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登錄</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data"> {# 文件上傳必須加上enctype="multipart/form-data" #}
{% csrf_token %}
<input type="file" name="file">
<input type="submit" value="上傳">
</form>
</body>
</html>
#函數(shù)體
def login(request):
if request.method == "POST":
file = request.FILES.get('file') #拿到文件---上傳一個文件
day_dir = datetime.now().strftime('%Y%m%d') #每天的文件放到每天的文件夾中,指定時間,以及各式
dir_path = os.path.join(MEDIR_ROOT,day_dir) #指定路徑,將文件放在指定的目錄下
if not os.path.exists(dir_path): #判斷路徑是否存在,不存在就創(chuàng)建
os.mkdir(dir_path)
filename = os.path.join(dir_path,file.name)
with open(filename,"wb")as f:
for line in file.chunks(): #chunks 上傳文件過大時候使用
f.write(line)
return render(request, "teacher/login.html")
功能:多個文件上傳、
#HTML頁面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登錄</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data"> {# 文件上傳必須加上enctype="multipart/form-data" #}
{% csrf_token %}
<input type="file" name="file" multiple="multiple"> {# multiple="multiple" 滿足多個文件同時上傳 #}
<input type="submit" value="上傳">
</form>
</body>
</html>
#函數(shù)體
def login(request):
if request.method == "POST":
# file = request.FILES.get('file') #拿到文件--上傳一個文件
files = request.FILES.getlist('file') #拿到文件--上傳多個文件
day_dir = datetime.now().strftime('%Y%m%d') #每天的文件放到每天的文件夾中,指定時間,以及各式
dir_path = os.path.join(MEDIR_ROOT,day_dir) #指定路徑,將文件放在指定的目錄下
if not os.path.exists(dir_path): #判斷路徑是否存在,不存在就創(chuàng)建
os.mkdir(dir_path)
for file in files:
filename = os.path.join(dir_path,file.name)
with open(filename,"wb")as f:
for line in file.chunks(): #chunks 上傳文件過大時候使用
f.write(line)
return render(request, "teacher/login.html")