django實現目錄上傳(最簡單的方法)

HTML代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
     <form enctype="multipart/form-data" action="/upload/" method="POST">
           {% csrf_token %}
           <input type="file" name="upload" id="file_input" multiple webkitdirectory="">
           <br/>
           <input type="submit" value="上傳"/>
     </form>

</body>
</html>
url.py

urlpatterns = [
    url(r'^upload/',upload)
]
views.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpResponseRedirect
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')


# Create your views here.


def upload(request):
    if request.method == 'GET':
        return render(request, 'index.html')
    elif request.method == 'POST':
        dir = request.FILES
        dirlist = dir.getlist("upload", None)        #獲取文件列表

        if not dirlist:
            return HttpResponse("沒有上傳內容")
        else:
            for file in dirlist:
                position = os.path.join('C:\\Users\\huyuan\\Desktop\\test\\upload',str(file))
                    # 獲取上傳文件的文件名,並將其存儲到指定位置
                storage = open(position, 'wb+')      # 打開存儲文件
                for chunk in file.chunks():          # 分塊寫入文件
                    storage.write(chunk)
            storage.close()                  #寫入完成後關閉文件
            return HttpResponse("上傳成功")  # 返回客戶端信息
    else:
            return HttpResponseRedirect("不支持的請求方法")


這種方式上傳目錄無法保持目錄結構,只會把目錄和其子目錄的文件上傳而不會上傳目錄


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章