1
我有不同的目錄中有多個文件,我需要用戶從網頁訪問。他們可以查看瀏覽器中的所有文本文件,但會下載所有* .zip文件。我有我的代碼難度低於在Python &旋風下載Python龍捲風文件下載
if directory.endswith('.zip'):
print('Currently downloading:', url)
self.set_header('Content-Type', 'application/octet-stream')
self.set_header("Content-Description", "File Transfer")
self.set_header('Content-Disposition', 'attachment; filename {}'.format(directory))
with open(url, 'r') as f:
try:
while True:
data = f.read(4096)
if not data:
break
self.write(data)
self.finish()
except Exception as exc:
self.write(json_encode({'data': exc}))
我已經在很多帖子在網上看了這些文件,他們認爲這樣做,因爲我做什麼,但尚未我沒有得到正確的結果。
請告知
FYI ..需要下載的文件不在靜態文件夾中,它們遍佈根目錄 –
什麼是您的「結果」?你有特定的錯誤信息嗎?如果您的文件不在靜態文件夾中,那麼您必須使每個文件本身都是靜態的,以使其可訪問。 – Flaudre
使用Tornado的主要原因是它的異步性,在這裏沒有代碼異步。此外,你阻止龍捲風,直到不給該文件。看源代碼實現StaticFileHandler它會給你一個非常詳細的理解,爲什麼你寫錯了代碼和阻塞主事件循環。 –