本例子以servlet为主。
下面是大概思路
![](/assets/blank.gif)
![]()
![]()
publicclassFtpServletextendsHttpServlet{
@Override
protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)
throwsIOException, ServletException {
response.setContentType("text/html");
StringremotePath= request.getParameter("remotePath");//ftp路径
StringfileName= request.getParameter("fileName");//ftp上的文件名称
Stringios=System.getProperty("os.name").toLowerCase();//获取系统名称,根据不同系统创建不同的存储路径
Stringpath="";
if(ios.indexOf("windows")>=0){
path=Configs.get("CommonFile.upfile_windows");
}else{
path=Configs.get("CommonFile.upfile_linux");
}
Filemk=newFile(path);
//如果文件夹不存在则创建
if (!mk.exists() && !mk.isDirectory())
{
mk.mkdir();
FtpUtil.downFile("10.24.10.36", 21, "fy4","fy4",remotePath,fileName,path);
//读取文件
Filefile= new File(path+ fileName);
try{
FileInputStreamis;
is= new FileInputStream(file);
ServletOutputStreamos= response.getOutputStream();
BufferedOutputStreambos= new BufferedOutputStream(os);
response.setHeader("Content-Disposition","attachment; filename=\""+ fileName + "\"");
byte[]len= new byte[1024*2];
intread= 0;
while((read=is.read(len)) != -1){
bos.write(len, 0, read);
System.out.println("read---"+read);
}
bos.flush();
bos.close();
is.close();
}catch(Exceptione) {
e.printStackTrace();
}
}
}
publicclassFtpUtil {
/**
* Description: 从FTP服务器下载文件
*
*@paramurl
* FTP服务器hostname
*@paramport
* FTP服务器端口
*@paramusername
* FTP登录账号
*@parampassword
* FTP登录密码
*@paramremotePath
* FTP服务器上的相对路径
*@paramfileName
* 要下载的文件名
*@paramlocalPath
* 下载后保存到服务器的路径
*@return
*/
publicstaticbooleandownFile(Stringurl,intport, Stringusername,
Stringpassword, StringremotePath, StringfileName,Stringpath
) {
booleansuccess= false;
FTPClientftp= new FTPClient();
intreply;
try{
ftp.connect(url,port);
ftp.login(username,password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);//文件类型为二进制文件
reply= ftp.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
returnsuccess;
}
ftp.enterLocalPassiveMode();//本地模式
ftp.changeWorkingDirectory(remotePath);
FTPFile[]fs= ftp.listFiles();
for(FTPFileff: fs) {
if(ff.getName().equals(fileName)) {
FilelocalFile= new File(path+ff.getName());
OutputStream is= new FileOutputStream(localFile);
ftp.retrieveFile(ff.getName(),is);
is.close();
}
}
ftp.logout();
success= true;
}catch(SocketExceptione) {
//TODOAuto-generated catch block
e.printStackTrace();
}catch(IOExceptione) {
//TODOAuto-generated catch block
e.printStackTrace();
}finally{
if(ftp.isConnected()) {
try{
ftp.disconnect();
}catch(IOExceptione) {
//TODOAuto-generated catch block
e.printStackTrace();
}
}
}
returnsuccess;
}
}
前台访问配置的servlet路径即可在网页上实现下载功能
java从ftp上下载图片到客户端本地相关推荐
- Java代码服务器上下载图片_Java如何从服务器中下载图片
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net ...
- ftp上传文件服务器报550错误_java ftp下载文件,Java 实现ftp上传下载文件
最近项目中需要实现将文件先存放到ftp上,需要的时候再从ftp上下载,做的过程中碰到了问题,发现中文文件名的无法上传到ftp上,ftp上的中文文件名的文件下载不下来,几番折腾,终于搞定了,记录一下备忘 ...
- Java 实现Ftp上传下载文件
最近项目中需要实现将文件先存放到ftp上,需要的时候再从ftp上下载,做的过程中碰到了问题,发现中文文件名的无法上传到ftp上,ftp上的中文文件名的文件下载不下来,几番折腾,终于搞定了,记录一下备忘 ...
- java ftp 上传文件到服务器,java实现ftp上传文件到服务器
java实现ftp上传文件到服务器 内容精选 换一换 怎样上传文件到Windows操作系统云服务器?安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ ...
- java获取服务器上的图片进行拼接
1.从服务器下载图片保存到本地 package com.example.demo.util;import java.io.File; import java.io.FileOutputStream; ...
- java ftp上传超时_有关java的ftp上传文件时断网的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我有一个java的ftp程序,他既是客户端又是服务端,我把程序放在两台电脑上运行, computer1和computer2,在computer1为文件上传 ...
- C代码实现从FTP上下载文件
从FTP上下载文件这个功能我早就想实现了,但是苦于百度的文章大多是下载链接,一直没舍得积分下载,这次通过查阅MSDN,将一套下载流程函数摸了一下,写出代码实现从FTP下载文件 环境 VS2015 代码 ...
- 从FTP上下载文件到本地
#region 下载文件/// <summary>/// 从FTP服务器下载文件,指定本地路径和本地文件名,20120817,ylh/// </summary>/// < ...
- JAVA 通过url下载图片保存到本地(亲测)
//java 通过url下载图片保存到本地 public static void download(String urlString, int i) throws Exception { ...
最新文章
- 贪心:jump 游戏(获取最少跳跃的次数以及跳跃路径)
- 论文阅读:Joint Learning of Single-image and Cross-image Representations for Person Re-identification
- Struts2漏洞分析之Ognl表达式特性引发的新思路
- lg android tv usb播放视频,小测LG新品液晶TV内置高清视频播放功能
- [渝粤教育] 西南科技大学 中学英语教材教法 在线考试复习资料
- Effective C++学习第九天
- Java根据路径获取文件内容的三种场景分析
- python图像边缘检测_python 简单图像处理(11) 空间域图像锐化(边缘检测)
- linux常用的搜索命令
- python科学计算的几个例子
- 纯净的windows官方WinPE制作
- 13.2 RS编码和纠错算法
- 中华人民共和国消费者权益保护法
- nrf uart for android,nRF Toolbox for BLE
- 计算机专业29岁博士毕业,已经29岁了想去读博士晚不晚?
- vue项目无法启动,谷歌浏览器报:您与此网站之间建立的连接不安全,实际是cdn服务器过期
- 将栅格影像转换为CAD/GIS矢量的3种方法
- 基于FMC 接口的Xilinx FPGA XC7K325T PCIeX8 接口卡
- 诺贝尔奖获得者平均年龄是多少?属于我们的时间好像不多了
- 一种效果很好的自动白平衡技术(WhiteBalance)
热门文章
- Android巴士倒闭了吗
- 多线程爬虫获取A股历史行情数据!股票量化分析工具QTYX-V2.2.3
- 控油,真的可以缓解脂溢性脱发么?
- WatchStor观察:剖析pNFS和文件系统的未来
- 【杭电oj2034】人见人爱A-B
- 手机和Linux蓝牙通信,Linux下手机与蓝牙的连接配置
- 还期待内存/闪存降价?三星/海力士们撑不住了
- [2021-09-10] 【入门1】顺序结构——多行字符串的打印
- ST-Link V2驱动下载:
- MTCNN(一)python代码训练与运行