十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){
创新互联专注于企业营销型网站、网站重做改版、绛县网站定制设计、自适应品牌网站建设、成都h5网站建设、商城建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为绛县等各大城市提供网站开发制作服务。
try {
String ftpHost = kmConfig.getFtpHost();
int port = kmConfig.getFtpPort();
String userName = kmConfig.getFtpUser();
String passWord = kmConfig.getFtpPassword();
String path = kmConfig.getFtpPath();
FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
ftpClient.binary();
ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
try {
TelnetInputStream in = ftpClient.get(fileName);
byte[] bytes = new byte[1024];
int cnt=0;
while ((cnt=in.read(bytes,0,bytes.length)) != -1) {
outputStream.write(bytes, 0, cnt);
}
//##############################################
//这里文件就已经下载完了,自己理解一下
//#############################################
outputStream.close();
in.close();
} catch (Exception e) {
ftpClient.closeServer();
e.printStackTrace();
}
ftpClient.closeServer();
} catch (Exception e) {
System.out.println("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");
}
}
这个涉及到文件的映射与跳转了,想要用JAVA写的话,最起码你传给它的应该是实质性的直接链接,这样它才可以建立连接,通过输入输出流。当然,如果你够厉害的话,也可以自己通过程序先对网址进行自动性的处理,然后分析出实质性的文件可靠地址,就可以下载了。
我看了一下,你的这个地址不是直接的链接,你发下载请求的时候人家直接在后台导向目标文件了。
java实现超链接下载方法如下:
response.setHeader("Content-disposition","attachment;filename="下载的文件名字);
备注:让response调用setheader方法添加下载的头给客户的浏览器,浏览器收到该头后就会打开相应的下载对话框。