0

您好我正在尝试通过这种方式实现 pdf 文件下载功能。

/* test.xhtml*/

<p:commandButton   actionListener="#{backingBean.download}" update=":form"/>

/BackingBean.java/ _ _

public Class BackkingBean implements serializable{
@ManagedBean
@ViewScoped

public void download(){
String uri = "http://173.24.57.274:8080/ROOT/html/xml/Test new_02.pdf";
URL url = new URL(uri);
File destination = new File("C:/Documents and Settings/microsoft/My Documents/Downloads/sample.pdf");
FileUtils.copyURLToFile(url, destination);
}

}

但是当我点击下载按钮时,我得到了以下错误。

原因:java.io.IOException:服务器返回 HTTP 响应代码:505 用于 URL:http://173.24.57.274:8080/ROOT/html/xml/Test new_02.pdf

我已经发布了一些关于此错误的 stackoverflow 帖子,但没有找到任何适合我的解决方案。

我错过了什么?如何克服这个问题。

4

1 回答 1

0

您应该尝试对 URL 值进行编码。如果我正确地窥探,PDF 文件的名称中似乎有一个空格值。即“测试new_02.pdf”。使用 URLEncoder 对 URL 进行编码可以消除 URL 中的“特殊字符”问题,并且在 Java 应用程序中对 URL 进行编码是一种很好的做法

看看http://docs.oracle.com/javase/6/docs/api/java/net/URLEncoder.html

并仔细阅读文档以了解如何对空格字符进行编码。

于 2013-06-19T16:26:14.587 回答