項(xiàng)目根目錄下static文件夾中創(chuàng)建media文件夾
配置
#settings文件配置下
MEDIR_ROOT = os.path.join(BASE_DIR,'static/media')
#這樣以后上傳的文件就自動(dòng)保存在這個(gè)文件夾中
功能:上傳一張圖片
#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') #拿到文件---上傳一個(gè)文件
day_dir = datetime.now().strftime('%Y%m%d') #每天的文件放到每天的文件夾中,指定時(shí)間贰锁,以及各式
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 上傳文件過大時(shí)候使用
f.write(line)
return render(request, "teacher/login.html")
功能:多個(gè)文件上傳弱恒、
#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" 滿足多個(gè)文件同時(shí)上傳 #}
<input type="submit" value="上傳">
</form>
</body>
</html>
#函數(shù)體
def login(request):
if request.method == "POST":
# file = request.FILES.get('file') #拿到文件--上傳一個(gè)文件
files = request.FILES.getlist('file') #拿到文件--上傳多個(gè)文件
day_dir = datetime.now().strftime('%Y%m%d') #每天的文件放到每天的文件夾中,指定時(shí)間犀被,以及各式
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 上傳文件過大時(shí)候使用
f.write(line)
return render(request, "teacher/login.html")