1

jsp で次のコードを使用して、サーバーからファイルをダウンロードしています。Struts フレームワークを使用しています。ファイルが存在しない場合に警告メッセージを表示したい (次のコードでは、ファイルが存在しない場合は読み取り不能な形式でダウンロードされます)。それを実装する方法がわかりません。誰かがこれを手伝ってくれたら本当にありがたいです。

jsp の内容:

<a href='<%=url%>/download.jsp?Path=<%=filePath%>&fileName=${CustomerRegistrationForm.customerId}_certificate.pdf' style="text-decoration:none"><font color="#0000FF">Click Here</font></a>
4

1 に答える 1

2

href の代わりに URL をクリックすると、ajax リクエストが送信されます。ファイルがそこにあり、ダウンロードできることを意味する200の場合、応答ステータスを確認します。ファイルがそこにない場合は、404 エラー ステータスが表示されます。その場合、メッセージを警告できます。

<body>
    <script language="javascript" type="text/javascript">
        function ajaxFunction(){
            var ajaxRequest;  // The variable that makes Ajax possible!
            try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
            } catch (e){
                // Internet Explorer Browsers
                try{
                    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try{
                        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e){
                        // Something went wrong
                        alert("Your browser broke!");
                        return false;
                    }
                }
            }
            // Create a function that will receive data sent from the server
            ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                    if(ajaxRequest.status == 200)   {
                    alert("File Found");
                    document.getElementById("downloadIframe").src = "abc.csv";
                    }
                    else    
                        alert("File Not Found");


                }
            }
            ajaxRequest.open("GET", "abc.csv", true);
            ajaxRequest.send(null); 
        }

    </script>
    <input type = "button" onclick = "ajaxFunction()" value =  "Download"/>
    <iframe id =  "downloadIframe" src =""  style="display:none;"></iframe>
</body>
于 2012-11-05T06:58:05.967 に答える