文件上傳

項目根目錄下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")
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容