2013年9月2日 星期一

Python-檔案下載

Django python download File

檔案如何上傳可以先研究一下 Python-上傳檔案

檔案上傳後先讓它顯示在templates上

讓使用者點選檔案後,可以成功下載。










Views (檔案下載程式)

def download (request):
    try:
       file_path = os.path.join( ‘檔案的路徑’ , ’存在SERVICE端的名稱’)

       f=open(file_path,'rb') 
       data=f.read()   #開始讀寫檔案至data變數裡面
       f.close()

    # content_type有很多種,有強制下載轉乘PDF的、有ZIP的,我就用force-download
       response = HttpResponse(data , content_type='application/force-download')

       #要import urllib
       #檔案原本名稱.encode("utf-8") 記得要換回檔案原本的名稱,轉成utf-8格式以免亂碼
       #不是存在service端的檔案名稱唷!
         response['Content-Disposition'] = 'attachment;filename=%s' %
                                     urllib.quote( 檔案原本名稱.encode("utf-8") )
         return response
     except:
         return HttpResponse('error to download file')



說明:
(1) os.path.join 可以import os 這個模組(module)

(2) 抓到檔案後,將檔案讀寫(rb)至另一個檔案上面

     讀寫好的檔案讓使用者下載。

(3)下載出來的格式可以用content_type變數設定





沒有留言:

張貼留言