您好我正试图通过这种方式实现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 for URL:
http://173.24.57.274:8080/ROOT/html/xml/Test new_02.pdf
我已经找到了一些有关此错误的stackoverflow帖子,但没有找到适合我的任何解决方案。
我缺少什么?如何克服这个问题。
答案 0 :(得分:0)
您应该尝试对URL值进行编码。如果我正确窥探,PDF文件的名称中似乎有一个Space值。即“Test new_02.pdf”。 使用URLEncoder对URL进行编码可以消除URL中“特殊字符”的问题,最好在java应用程序中对URL进行编码
查看http://docs.oracle.com/javase/6/docs/api/java/net/URLEncoder.html
仔细阅读文档,了解如何编码空格字符。