django+python 實現下載檔案
阿新 • • 發佈:2019-01-04
1. 新建一個檔案下載的模板(本文是基於bootstrap的模板):
2. 編寫相應的view函式:<div class="row"> <div class="col-md-8 col-md-offset-2"> <br> <P>第一種方法,直接把連結地址指向要下載的靜態檔案,在頁面中點選該連結,可以直接開啟該檔案,在連結上點選右鍵,選擇“另存為”可以儲存該檔案到本地硬碟。 此方法只能實現靜態檔案的下載,不能實現動態檔案的下載。</P> <a href="{% url 'media' 'uploads/11.png' %}">11.png</a> <br> <br> <p>第二種方法,將連結指向相應的view函式,在view函式中實現下載功能,可以實現靜態和動態檔案的下載。</p> <a href="{% url 'course:download_file' %}">11.png</a> <br> <br> <br> <p>第三種方法,與第二種方法類似,利用按鈕的響應函式實現檔案下載功能。</p> <label> 11.png</label><button onclick="window.location.href='{% url 'course:download_file' %}'">Download</button> </div> </div
def download_file(request): # do something the_file_name='11.png' #顯示在彈出對話方塊中的預設的下載檔名 filename='media/uploads/11.png' #要下載的檔案路徑 response=StreamingHttpResponse(readFile(filename)) response['Content-Type']='application/octet-stream' response['Content-Disposition']='attachment;filename="{0}"'.format(the_file_name) return response def readFile(filename,chunk_size=512): with open(filename,'rb') as f: while True: c=f.read(chunk_size) if c: yield c else: break
3. 配置相應的頁面訪問url:
<input type='button' class='download'>
$("body").on("click",".download",function(){ location.href="/downloadFile/?url="+路徑;
});