String urlStr ="http://192.168.1.111:8083/down/1.pdf";
URL url = new URL(urlStr);
conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
//获取下载文件的总大小
fileSize = conn.getContentLength();
System.out.println("fileSize "+fileSize);
...文件保存
这样是能得到文件长度和下载的,但是我的pdf文件是作为二进制存储到oracle数据库中的,而我用上边这个方法的话必须要先从服务器把数据库中的二进制保存成文件,然后再把文件地址传入上边的方法,才能成功下载,本来以为客户端发送连接请求,服务器收到请求后,先用输入流从数据库读出数据,然后输出流输出,客户端就会收到数据流,可是试了下返回的conn.getContentLength()都为-1,读取不到HttpURLConnection内容的长度!难道是返回类型不对吗?我应该用什么类型返回或者输出?求各位大侠不吝赐教,小弟万分感谢!简单点就是服务器收到请求后直接从oracle库中取出数据流然后返回给安卓客户端接收并保存成文件!
你的Conn是URL,如果文件数据还在数据库上,相当于说文件没有建立,URL指向文件地址肯定也读不到数据。URL是定位到文件资源,要用url conn,就要有文件存在。要用数据库存的数据,只能用其他IO读取数据。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。