0

ユーザーがボタンをクリックしたときにpdfファイルをダウンロードしたい.フロントエンドではJSF 2を使用しています。

PDFファイルは、ローカルのTomcatのルートフォルダー内に保存されています。私はこのようにフォローしていますが、それは私に例外を与えています

java.io.IOException: サーバーが HTTP 応答コードを返しました: URL の 505:

URL url;
        URLConnection con;
        DataInputStream dis; 
        FileOutputStream fos; 
        byte[] fileData;  
        try {
            url = new URL("http://localhost:8080/html/pdf/sample.pdf"); //File download Location goes here

            System.out.println("URL "+url.toString());
            con = url.openConnection(); // open the url connection.
            dis = new DataInputStream(con.getInputStream());
            fileData = new byte[con.getContentLength()]; 
            for (int q = 0; q < fileData.length; q++) { 
                fileData[q] = dis.readByte();
            }
            dis.close(); // close the data input stream
            fos = new FileOutputStream(new File("/Users/sample.pdf")); //FILE Save Location goes here
            fos.write(fileData);  // write out the file we want to save.
            fos.close(); // close the output stream writer
        }
        catch(Exception m) {
            System.out.println(m);
        }

間違ったパスを提供していますか? はいの場合、ローカル システムの tomcat フォルダからファイルをダウンロードするための正しいパスは何ですか?

4

1 に答える 1

0

変更した場合は、port number 8080ORを入力するか、ポート番号を入力するのを忘れていると思います。8052

特定のパスを入れてください。

URL url;
URLConnection con;
DataInputStream dis; 
 FileOutputStream fos; 
 byte[] fileData;  
try {
url = new URL("http://localhost:8052/Naveed_workingfiles/a.pdf"); //File download Location goes here

System.out.println("URL "+url.toString());
con = url.openConnection(); // open the url connection.
dis = new DataInputStream(con.getInputStream());
fileData = new byte[con.getContentLength()]; 
for (int q = 0; q < fileData.length; q++) { 
    fileData[q] = dis.readByte();
}
dis.close(); // close the data input stream
fos = new FileOutputStream(new File("C:/Documents and Settings/microsoft/My Documents/Downloads/sample.pdf")); //FILE Save Location goes here
fos.write(fileData);  // write out the file we want to save.
fos.close(); // close the output stream writer
}  catch(Exception m) {
System.out.println(m);
 }
于 2013-06-17T10:21:58.543 に答える