- 開発環境
Visual Studio Code:1.34.0
python:3.6.8
①以下の内容で、複数ファイルをダウンロードしようとしています。
html
1<!-- htmlファイル(抜粋) --> 2<form action="/all_download"> 3 <button type="submit">全てダウンロード</button> 4</form>
flask
1# app.py(抜粋) 2@app.route('/all_download') 3def download_all(): 4 dir = 'data' 5 data_files = os.listdir(dir) 6 data_files_fullpath = [os.path.join(dir, d) for d in data_files] 7 for d in data_files_fullpath: 8 print('ダウンロード: ' + d) 9 return send_file(d, as_attachment = True)
bash
1# 「全てダウンロード」ボタンをクリックした際のターミナルの表示 2ダウンロード: /XX/XX/data/aaa.txt 3127.0.0.1 - - [22/May/2019 14:18:04] "GET /all_download HTTP/1.1" 200 -
ファイルを1つダウンロードして終了してしまいます。
②なので、returnを外してみました。
flask
1# app.py(抜粋) 2@app.route('/all_download') 3def download_all(): 4 dir = 'data' 5 data_files = os.listdir(dir) 6 data_files_fullpath = [os.path.join(dir, d) for d in data_files] 7 for d in data_files_fullpath: 8 print('ダウンロード: ' + d) 9 send_file(d, as_attachment = True) # returnを外す 10 return index()
bash
1# 「全てダウンロード」ボタンをクリックした際のターミナルの表示 2ダウンロード: /XX/XX/data/aaa.txt 3ダウンロード: /XX/XX/data/bbb.txt 4ダウンロード: /XX/XX/data/ccc.txt 5127.0.0.1 - - [22/May/2019 14:00:00] "GET /all_download HTTP/1.1" 200 -
for文は繰り返されるのですが、今度は1つもファイルがダウンロードできていませんでした。
for文を抜けることなく、ファイルをダウンロードするにはどのようにすればよいでしょうか。
どなたかわかる方がいましたら、よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/22 09:53