iPhone、iPadではできない
csvファイルなどでは直接ブラウザ上で表示されるのですが、xlsxファイルとかはダメ。知りませんでしたがセキュリティ上の仕様のようです。https://www.idownloadblog.com/2016/04/14/how-to-download-files-and-documents-to-iphone-or-ipad/
- xlsx NG
- 拡張子なし NG
- csv そのままhtml表示される
- pdf OK -> 保存先をブラウザで聞かれる
ということで、pdfに変換すれば大丈夫そうです。
ダウンロードの設定など
as_attachment=True として、ファイルのヘッダをContent-Disposition: attachmentとします。この設定で、ブラウザで開くのではなく、ファイルとしてダウンロードすることになります。/send を開いたときにtest.csvをダウンロードするには・・・
#app.py
@app.route('/send')
def send():
filename="test.csv"
return send_file(filename_or_fp=filename, as_attachment=True)
ソースからのファイルをアップロードするならこちらを使ってください、という注意があります。" Please never pass filenames to this function from user sources; you should use send_from_directory() instead. " このときは、configでディレクトリを指定して、その中のファイルをアップロードするように指定します。静的に保管しているファイルをアップロードするときにはこちらの方がセキュアだとのことです。
app.config['UPLOAD_FOLDER'] = '.'
@app.route('/uploads/<path:filename>')
def download_file(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'],
filename, as_attachment=True)
0 件のコメント:
コメントを投稿