1

ユーザーが特定のファイルをダウンロードできるようにするフラスコで send_from_directory を使用しています。私が達成したいのは、ファイルがダウンロードされた後にページが更新されることですが、フラスコでこれを達成する方法がわかりません(可能な場合)。現在、私のコードは次のようになっています。

if report:
            location = Document_Generator(report).file_location

            return send_from_directory(location[0],
                               location[1], as_attachment=True)

私の質問は次のとおりです。ユーザーがファイルをダウンロードできるようにするだけでなく、ページを更新するにはどうすればよいですか (テンプレートを使用して通常の応答を返す)。

4

1 に答える 1

1

HTTP では、やりたいことができません (200 + 300)。ただし、 + JavaScript (または JavaScript のみ)を使用して、クライアント レベルで実行できます。_target

<a href="/path/to/download/file" target="downloadIframe">Download file</a>
<iframe id="downloadIframe"></iframe>

いくつかの JavaScript と組み合わせる:

var slice = Array.prototype.slice;

var links = document.querySelectorAll("[target='downloadIframe']"),
    iframe = document.getElementById("downloadIframe");
slice.call(links).forEach(function(link) {
    link.addEventListener("click", reloadPageOnIframeLoad);
});

function reloadPageOnIframeLoad() {
    // Reset this for each click on a download link
    // rather than adding another event listener each time.
    iframe.onload = function() { window.location.reload(); };
}
于 2013-05-31T14:14:02.763 に答える