django 文件上傳

模板文件:服務器

<form method='post' action='/script/upload/' enctype="multipart/form-data" accept-charset="utf-8">
{% csrf_token %}
<input type='file' name='file' />
<input type='submit' value='上傳' />
</form>

 

視圖函數:app

def upload(request):
    def handle_uploaded_file(f):
        destination = open('gamepost.xml', 'w')
        for chunk in f.chunks():
            destination.write(chunk)
        destination.close()
    if request.method == 'POST':
        handle_uploaded_file(request.FILES['file'])
        return HttpResponse('遊戲公告更新成功!')

 

form 表單裏有一句 enctype="multipart/form-data",在上傳文件的表單裏必需要有這個。enctype 屬性規定在發送到服務器以前應該如何對錶單數據進行編碼。函數

默認地,表單數據會編碼爲 "application/x-www-form-urlencoded"。就是說,在發送到服務器以前,全部字符都會進行編碼(空格轉換爲 "+" 加號,特殊符號轉換爲 ASCII HEX 值)。其它屬性值有:post

描述
application/x-www-form-urlencoded 在發送前編碼全部字符(默認)
multipart/form-data

不對字符編碼。編碼

在使用包含文件上傳控件的表單時,必須使用該值。url

text/plain 空格轉換爲 "+" 加號,但不對特殊字符編碼。
相關文章
相關標籤/搜索