1

Spring 3.x ライブラリを使用して取り組んでいるこのアプリケーションがあります。現在、「n」個のリンクを含むダウンロード ページがあり、「n」は通常 10 より大きいです。私が行ったことは、次のような URL パターンを作成したことです。

/sec-download.do?p=10001

ダウンロード リンクをクリックすると、いくつかの検証を実行するコントローラーが呼び出され、ブラウザーでダウンロードできる有効な CDN リンクが生成されます。サンプル コード スニペットを次に示します。

protected ModelAndView handleRequestInternal(final HttpServletRequest request, final HttpServletResponse response) throws Exception {
    final Map<String, Serializable> secureAssetModel = new HashMap<String, Serializable>();
    String downloadComponent = getRequestHelper().getStringParameterOrAttribute(request, ExtWebConstants.REQUEST_PARAM_DOWNLOAD_COMPONENT, "");
    ModelAndView resultView = null;
    if (downloadComponent == StringUtils.EMPTY) { // For regular web downloads.
        String requestParamsEncoded = getServetRequestHelper().getStringParameterOrAttribute(request, ExtWebConstants.REQUEST_PARAM_DOWNLOAD, "");
        String requestParamsDecoded = new String(Base64.decode(requestParamsEncoded.getBytes()));
        <snip>......<snip>
        <snip>......<snip>
        <snip>......<snip>
        resultView = getWebResultView(errorType, requestParamsDecoded, request);
    } 
    return resultView;
}

private ModelAndView getWebResultView(final DownloadErrorType errorType, final String requestParamsDecoded, final HttpServletRequest request) {
    ModelAndView resultView = null;
    final Map<String, Serializable> secureAssetModel = new HashMap<String, Serializable>();
        String downloadURL = downloadService.getEvalDownloadLink(filePath);
        <snip>......<snip>
        <snip>......<snip>
        <snip>......<snip>
        resultView = new ModelAndView("redirect:" + downloadURL);
        return resultView;
}

メソッド getWebResultView() の変数 downloadURL は、リダイレクト URL として ModelAndView にラップされる実際のダウンロード リンク ( http://download.xyz.com/xxx.exe?p=111 ) を取得します。この modelandView は、最終的にメソッド handleRequestInternal() から返されます。

ここでの問題は、FF と Chrome の場合、ダウンロード リンクをクリックすると、ブラウザのダウンロード ポップアップが開き、ユーザーに保存するように求められることです (この間ずっと同じページにとどまっています)。ただし、Internet Explorer では、ビューが別のページにリダイレクトされ、ダウンロードが開始されます。つまり、次のファイルをダウンロードするには、ユーザーはブラウザの戻るボタンを押して次のダウンロードを開始する必要があります。

これは、実際にダウンロード URL にリダイレクトしていることが原因である可能性があることを理解しています。同じページにとどまりながらファイルをダウンロードできるように、MSIE で FF や chrome と同様の動作を行うことができるかどうか疑問に思っていますか?

任意の入力をいただければ幸いです。よろしく。

4

0 に答える 0