精华内容
下载资源
问答
  • Ftp 下载文件夹

    千次阅读 2019-05-08 20:12:42
    今天给大家分享一下使用Ftp 下载文件夹 首先说一下 流程, 我们需要用java代码先将我们需要下载的文件夹压缩成一个zip文件 然后我们在用户下载文件的方法 去下载这个zip 就可以 第一步 我们需要导入两个包 <...

    今天给大家分享一下使用Ftp 下载文件夹

    首先说一下 流程, 我们需要用java代码先将我们需要下载的文件夹压缩成一个zip文件 然后我们在用户下载文件的方法 去下载这个zip 就可以

    第一步 我们需要导入两个包

            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch</artifactId>
                <version>0.1.54</version>
            </dependency>
            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>3.6</version>
            </dependency>
    

    第二步 我们需要创建两个工具类 JSCHUtil

    
    /**
     * @author Xiaoliu
     * @date 2019/5/8
     * @description xhell 命令工具类
     */
    
    import com.jcraft.jsch.ChannelExec;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.JSchException;
    import com.jcraft.jsch.Session;
    
    import java.io.InputStream;
    import java.util.Properties;
    
    public class JSCHUtil {
        private static JSCHUtil instance;
    
        private JSCHUtil() {
        }
    
    
        public static JSCHUtil getInstance() {
            if (instance == null) {
                instance = new JSCHUtil();
            }
            return instance;
        }
    
        private Session getSession(String host, int port, String userName) throws JSchException {
            JSch jSch = new JSch();
            Session session = jSch.getSession(userName, host, port);
            return session;
        }
    
        public Session connect(String host, int port, String ueseName,
                               String password) throws Exception {
            Session session = getSession(host, port, ueseName);
            session.setPassword(password);
    
            Properties config = new Properties();
            config.setProperty("StrictHostKeyChecking", "no");
            session.setConfig(config);
            session.connect();
    
            return session;
        }
    
        public String execCmd(Session session, String command)
                throws Exception {
            if (session == null) {
                throw new RuntimeException("Session is null!");
            }
    
            ChannelExec exec = (ChannelExec) session.openChannel("exec");
            InputStream in = exec.getInputStream();
            byte[] b = new byte[1024];
    
            exec.setCommand(command);
            exec.connect();
    
            StringBuffer buffer = new StringBuffer();
    
            while (in.read(b) > 0) {
                buffer.append(new String(b));
            }
    
            exec.disconnect();
    
            return buffer.toString();
        }
    
        public static void clear(Session session) {
            if ((session != null) && session.isConnected()) {
                session.disconnect();
                session = null;
            }
        }
    }
    

    测试一下能用不

     public static void main(String[] args) throws Exception {
                Session session = JSCHUtil.getInstance()
                        .connect("192.168.108.246", 22, "root", "hadoop");
                String cmd = "ls /home";
                String result = JSCHUtil.getInstance().execCmd(session, cmd);
                // ???????;??
                System.out.println(result);
                System.exit(0);
            }
    

    在这里插入图片描述
    在这里插入图片描述

    现在说明我们已经可以用我们的Java 去执行我们linux 命令了

    下面我们就需要去 压缩你想要的文件了 然后去下载

    创建工具方法

    /**
         * ftp 下载文件夹
         *
         * @param url        服务ip
         * @param port       端口号
         * @param username   用户名
         * @param password   密码
         * @param remotePath 服务器相对路径
         * @param fileName   文件名称
         * @return byte
         * @throws Exception
         */
        public static byte[] downDirectory(String url, int port, String username, String password, String remotePath, String fileName) throws Exception {
            // 用于接口文件流
            ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
            // 创建盒子
            FTPClient ftp = new FTPClient();
            try {
                int reply;
                // 打开盒子大门
                ftp.connect(url, port);
                // 登录
                ftp.login(username, password);
                // 获取连接返回值
                reply = ftp.getReplyCode();
                // 返回 500 ,530 都是失败
                if (!FTPReply.isPositiveCompletion(reply)) {
                    ftp.disconnect();
                    return byteStream.toByteArray();
                }
                // 设置字符集
                ftp.setControlEncoding("UTF-8");
                ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
                ftp.enterLocalPassiveMode();
                // 转移到FTP服务器目录
                ftp.changeWorkingDirectory(remotePath);
                // 发送 Linux xhell 命令
                Session session = JSCHUtil.getInstance().connect("192.168.108.246", 22, "root", "hadoop");
                // 命令
                String cmd = "zip -r /home/ftp_shypt/shypt/yl_merchant_images/images.zip /home/ftp_shypt/shypt/yl_merchant_images";
                // 因为我的用户的权限不够 下载文件夹  所以我需要在变更一下文件权限
                String result = JSCHUtil.getInstance().execCmd(session, cmd);
                String cmd1 = "chown -R ftp_shypt:ftp_shypt /home/ftp_shypt/shypt/yl_merchant_images/images.zip";
                String result1 = JSCHUtil.getInstance().execCmd(session, cmd1);
                JSCHUtil.clear(session);
                System.out.println(result);
                ftp.setControlEncoding("UTF-8");
                ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
                ftp.enterLocalPassiveMode();
                // 转移到FTP服务器目录
                ftp.changeWorkingDirectory(remotePath);
                // 获取path下的所有文件
                String[] fs = ftp.listNames();
                for (String ff : fs) {
                    String ftpName = ff;
                    if (ftpName.equals(fileName)) {
                        try (InputStream is = ftp.retrieveFileStream(new String(ftpName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1))) {
                            byte[] buffer = new byte[BUFFER_SIZE];
                            int len = -1;
                            while ((len = is.read(buffer, 0, BUFFER_SIZE)) != -1) {
                                byteStream.write(buffer, 0, len);
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        break;
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (ftp.isConnected()) {
                    ftp.disconnect();
                }
            }
            return byteStream.toByteArray();
        }
    
    

    写个测试方法 测试一下

     public static void main(String[] args) throws Exception {
                byte[] data = downDirectory("192.168.108.246", 21, "ftp_shypt", "ftp_shypt", "shypt/yl_merchant_images", "images.zip");
                File file = new File("E:\\images.zip");
                FileOutputStream fileOutputStream = new FileOutputStream(file);
                fileOutputStream.write(data);
            }
    

    在这里插入图片描述
    在这里插入图片描述

    注意我是直接将他下载到我本机了 你可以获取byte[] 流 用 HttpServletResponse response 将流 写出成一个文件zip 就完成浏览器下载

    public void downDirectory(HttpServletResponse response) throws IOException, JSchException {
    
            System.out.println("初始化成功");
            try {
                byte[] data = downDirectory(URL, PORT, USERNAME, PASSWD, PATH,"images.zip");
                response.addHeader("Content-Disposition", "attachment;filename= " + "images.zip");
                response.setContentType("application/vnd.ms-excel;charset=utf-8");
                ServletOutputStream out = response.getOutputStream();
                out.write(data);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    完事了 请你试一试 有什么问题 @我 Win 564580134 著名你是干啥的

    展开全文
  • Java中实现ftp下载文件至本地(详细): 2020-09-13:今天记录一下java中实现ftp下载文件至本地的功能模块,同此与大家交流分享有什么不对的地方大家可以指出! 1.FTP协议: 什么是FTP呢?FTP 是 TCP/IP 协议组中的...

    Java中实现ftp下载文件至本地(详细):

    2020-09-13:今天记录一下java中实现ftp下载文件至本地的功能模块,同此与大家交流分享有什么不对的地方大家可以指出!

    1.FTP协议:

    什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。 该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明 和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载 (download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。

    2.SSH工具

    ssh---ftp----winscp----filezilla-----xftp----

    上面呢简单介绍下ftp协议和一些使用的工具,这篇文章呢我在java中是用的sftp下载,那使用的类是ChannelSftp,言归正传,奉上自己的demo。。。。

    呵呵

    1.连接

     protected static Logger log = LoggerFactory.getLogger(FTPUtil.class);
    
        public static final String NO_FILE = "No such file";
    
        private ChannelSftp sftp = null;
    
        private Session sshSession = null;
    
        /* FTP账号 */
        private String username;
        /* FTP密码 */
        private String password;
        /* FTP主机 */
        private String host;
        /* FTP端口 */
        private int port;
    
        public FTPUtil(String host, int port, String username, String password) {
            this.host = host;
            this.port = port;
            this.username = username;
            this.password = password;
        }
    
        /**
         * 连接sftp服务器
         *
         * @return ChannelSftp sftp类型
         * @throws Exception
         */
        public ChannelSftp connect() throws FtpException {
            log.info("尝试连接FTP {host=" + host + ",username=" + username + ",port=" + port + "}");
            boolean connect = false;
            JSch jsch = new JSch();
            try {
                int tryCountAll = 5;
                int tryCount = 0;
                while (tryCount++ < tryCountAll && !connect) {
                    if (tryCount > 1) {
                        try {
                            Thread.sleep(5000 * (tryCount - 1));
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        log.info("第" + tryCount + "次尝试连接FTP服务器");
                    }
                    sshSession = jsch.getSession(username, host, port);
                    sshSession.setPassword(password);
                    Properties properties = new Properties();
                    properties.put("StrictHostKeyChecking", "no");
                    sshSession.setConfig(properties);
                    sshSession.connect(50000);
                    Channel channel = sshSession.openChannel("sftp");
                    channel.connect(50000);
                    sftp = (ChannelSftp) channel;
                    if (sftp == null) {
                        log.info("FTP 服务器未连接");
                        connect = false;
                    } else {
                        log.info("连接 FTP 成功!");
                        connect = true;
                    }
                }
            } catch (JSchException e) {
                throw new FtpException("连接 FTP 异常 : " + e.getMessage());
            }
            return sftp;
        }
    

    这一块呢我们走完了第一步,先去连接远程,代码中加了重试的逻辑(重新连接的意思),代码中一些类大家可以下去自行了解,本人就不啰嗦了哦(我这边使用的是ChannelSftp ,大家不妨可以试试另一个FtpClient这个类(大步骤都差不多)

    2.批量下载(我这里就不啰嗦很多了直接贴了代码,大家可以搜其他的,比如删除,单个下载什么的有很多,我这里项目用到的是一个批量下载,所以就贴出了一段代码!

    public void createDirectoryQuietly(File file) {
            if (file != null) {
                if (!file.exists()) {
                    if (!file.mkdirs()) {
                        throw new RuntimeException(file.getName() + " is invalid,can't be create directory");
                    }
                }
            }
        }
    
    	//remoteDir 是FTP上要下载的目录
    	// localFile 是下载的本地目录
        public File downloadFileNew(String remoteDir, String localFile) throws FtpException {
            long startTime = System.currentTimeMillis();
            connect();  //连接ftp
            log.info("开始下载文件FTP目录 " + remoteDir + " 本地文件 " + localFile);
            File file = null;
            file = new File(localFile);
           /* if (file.exists()) {
    
                deleteFileAll(file);
            }
            file.mkdirs();*/
            createDirectoryQuietly(file);//创建目录文件,(这个方法可以创建目录,但多层级的我没试,大家定义路径的时候可以 /home/test  home是本来就有的test会创建)
            OutputStream output = null;
            try {
    
                /***
                 * 得到custInfo路径下所有文件名
                 */
                sftp.cd(remoteDir);  //进入remoteDir目录
                String path = remoteDir + "/custInfo";
                Vector v = sftp.ls(path);   //获取custInfo下文件列表
                List<String> filenameNew = new ArrayList<>(); //获取custInfo下所有目录文件名
                if (v.size() > 0) {
                    log.info("文件个数不为0,开始下载。。。。。。。。。filesize=" + v.size());
                    Iterator it = v.iterator();
                    while (it.hasNext()) {   //循环文件
                        ChannelSftp.LsEntry lsentry = (ChannelSftp.LsEntry) it.next();
                        String filenames = lsentry.getFilename();
                        if (!".".equals(filenames) && !"..".equals(filenames)) {
                            log.info(path + "路径下的文件名" + filenames);
                            filenameNew.add(filenames);
                        }
                    }
                } else {
                    log.info("获取文件失败 " + remoteDir + "文件数为0");
                    throw new FtpException("获取文件失败 " + remoteDir + "文件数为0");
                }
    
                /***
                 * 得到custInfo/路径下各个文件下的文件名
                 */
                sftp.cd(path);  //切换到custInfo/路径下
                for (int i = 0; i < filenameNew.size(); i++) {  //得到每个目录文件下的文件
                    System.out.println(filenameNew.get(i) + "文件名");
                    Vector<?> vNew = sftp.ls(filenameNew.get(i));  //获取文件列表
                    sftp.cd(filenameNew.get(i)); //切换到custInfo/路径下各个文件路径下
                    File file2=new File(localFile+"/"+filenameNew.get(i));
                    if (file2.exists()) {
                        file2.delete();
                    }
                    file2.mkdir();
                    if (vNew.size() > 0) {
                        Iterator it = vNew.iterator();
                        while (it.hasNext()) {
                            ChannelSftp.LsEntry lsentry = (ChannelSftp.LsEntry) it.next();
                            String filenames1 = lsentry.getFilename();
                            if (!".".equals(filenames1) && !"..".equals(filenames1)) {
                                log.info(filenameNew.get(i) + "路径下的文件名" + filenames1);
                                File file1 = new File(file2+"/"+filenames1);
                                file1.createNewFile();
                                output = new FileOutputStream(file1);
                                sftp.get(filenames1, output);
                                log.info("文件:" + filenames1 + " 下载成功.");
                            }
                        }
                        sftp.cd(path);  //每次路径下载后再切换到 上一级目录
                    }
                }
            } catch (SftpException e) {
                if (e.toString().equals(NO_FILE)) {
                    log.info("下载文件失败");
                    throw new FtpException("下载文件失败");
                }
                throw new FtpException("ftp目录或者文件异常,检查ftp目录和文件" + e.toString());
            } catch (FileNotFoundException e) {
                throw new FtpException("本地目录异常,请检查" + file.getPath() + e.getMessage());
            } catch (IOException e) {
                throw new FtpException("创建本地文件失败" + file.getPath() + e.getMessage());
            } finally {
                if (output != null) {
                    try {
                        output.close();
                    } catch (IOException e) {
                        throw new FtpException("Close stream error." + e.getMessage());
                    }
                }
                disconnect();
            }
            log.info("下载文件结束 耗时:" + (System.currentTimeMillis() - startTime) + " ms");
            return file;
        }
    

    给大家解释下代码

    在这里插入图片描述

    第一句 sftp.cd()这个方法大家都知道,cd进去目录(注意:关键点大家注意一下:当你想操作某个目录文件时一定要cd到这个目录下(啰嗦,跟谁不知道一样

    第三句 sfpt.ls()这个方法,大家也都知道哈,查看文件。往后代码的话就是使用循环将目录下的文件名循环出来,我这边使用list集合存了起来(注意:因为我当时要取得文件是 多层级目录的大家如果不是多层级的话,直接走你逻辑就好。)

    在这里插入图片描述
    这样的多层级目录的!

    第二段代码

    在这里插入图片描述
    这一段呢,顾名思义,因为我的第一段代码呢是获取多层级的目录名字,那么这一段就是获取多层级目录下的文件。注意:上面代码的最后一段 那个cd方法。操作多层级目录你每进去一个目录,然后换另一个的话你就要在代码里,在cd下一个目录路径!

    今天的这个ftp下载分享完了,大家如果有什么不太懂的地方,欢迎评论提出,我这会秒回哦!也谢谢大家的支持!记录生活,记录知识!我是王不正

    在这里插入图片描述

    展开全文
  • 用C#实现文件上传到FTP,从ftp下载,读取文件
  • 易语言FTP下载带进度

    热门讨论 2011-01-14 12:15:19
    易语言FTP下载带进度 其中包含一个模块,已打包上传
  • Ftp下载工具俗称来讲就是Ftp工具,是我们常用的一个服务。Ftp下载工具主要是网络上用来传送文件的工具。但有些Ftp软件传输文件不是特别稳定。今天就来为大家分享3款非常好用和用户满意度最高的Ftp下载工具。 第一款...

    Ftp下载工具俗称来讲就是Ftp工具,是我们常用的一个服务。Ftp下载工具主要是网络上用来传送文件的工具。但有些Ftp软件传输文件不是特别稳定。今天就来为大家分享3款非常好用和用户满意度最高的Ftp下载工具。

    第一款:IIS7服务器管理工具

    这款软件的Ftp客户端做的是非常棒的,不仅具有批量操作功能,还具有定时同步(上传和下载)和自动更新功能。这些功能真的是我超爱的功能,做事效率提高了不止一星半点。而且特别容易上手,一般的软件都还需要熟悉一下,这个就是很快的能开始运用。好处很多,需要用户慢慢去体会。有的东西是只能亲身体验过后才知道的。

    IIS7服务器管理工具所包含的功能是比较多比较全面的,开发者从各个角度都做到了为用户着想,这点是非常棒的。毕竟一款软件要想有发展前途,那必须是要用户体验好。这款IIS7服务器管理工具可以进行批量管理、同步操作、到期提醒、数据安全和定期执行。IIS7服务器管理工具无论是传输速度还是安全性都是非常优秀的一款软件了。相信我,你们入股这款工具绝对不亏。

    下载地址:IIS7服务器管理工具
    在这里插入图片描述

    第二款:WinSCP
    WinSCP是一款支持SSH(Secure SHell)的SCP(Secure CoPy)文件传输软件。只要文件主机支持SSH协定,你就可以安心的下载、上传文件。他的操作界面是参考NC(Norton Commander)的双视窗排列方式,使用起来不会有太大的困难。在WinSCP中,一般的文件操作都没有问题,如:复制、移动、更名文件或文件夹等。
    在这里插入图片描述
    第三款:FileZilla 3.24
    FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能,具备极好的可控性及条理性。此为FileZilla最新官方版,请放心下载使用。FileZilla功能介绍:可以断点续传进行上传、下载(需要服务器支持);自定义命令;可进行站点管理。
    在这里插入图片描述
    第四款:FlashFXP 5.4
    FlashFXP是一个功能强大的 FXP/FTP 软件,融合了一些其他优秀 FTP 软件的优点,如像 CuteFTP 一样可以比较文件夹,支持彩色文字显示;像 BpFTP 支持多文件夹选择文件,能够缓存文件夹;像 LeapFTP 一样的外观界面,甚至设计思路也差相仿佛。支持文件夹(带子文件夹)的文件传送、删除;支持上传、下载及第三方文件续传。
    在这里插入图片描述
    第五款:Yummy FTP MAC版
    Yummy FTP支持修改服务器文件、设置本地或远程路径,上传下载文件都非常稳定,并且支持中文。完全兼容最新的 Leopard 操作系统。通过FTP,FTPS的(SSL / TLS的)和SFTP(SSH)连接。
    在这里插入图片描述
    第六款:LeapFtp
    这是一款轻巧、灵活、功能强大的FTP客户端软件,用户界面友好,传输速度稳定,能够连接绝大部分FTP站点(包括一些教育站点),自带了许多免费的FTP站点,资源丰富,支持断点续传和远程目录搜索,可以自定义命令、远程监控传输,对于FTP连接来说,也是一个非常不错的软件。
    在这里插入图片描述

    展开全文
  • java ftp下载文件

    千次阅读 2019-08-02 12:22:49
    1、使用官方正规的jar ...注意:使用ftp从windows服务器下载文件和从linux服务器下载文件不一样 2、用ftp从linux服务器下载文件 System.out.println(new Date()+" 开始进入ftpDownload定时器"); /...

    1、使用官方正规的jar

    commons-net-1.4.1.jar

    jakarta-oro-2.0.8.jar

    注意:使用ftp从windows服务器下载文件和从linux服务器下载文件不一样

    2、用ftp从linux服务器下载文件

    System.out.println(new Date()+"  开始进入ftpDownload定时器");
            
            //ftp服务器登录凭证
            String host=PropertiesManager.getProperty("ftpHost");
            int port=Integer.parseInt(PropertiesManager.getProperty("ftpPort"));
            String user=PropertiesManager.getProperty("ftpUser");
            String password=PropertiesManager.getProperty("ftpPassword");
            
            //获取时间字段信息
            SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            Date date=new Date();
            String today1 = sdf1.format(date);
            String today = sdf.format(date);
                    
            String txtFileDir="/";
            String txtSaveDir="E:/dataCenter/shengzhan/";
            
            //检查本地磁盘目录是否存在txt文件
            boolean flag = isTxtExit(today1,txtSaveDir);
            System.out.println(new Date()+"  判断txt文件是否存在:"+flag);
            FlagUtil.ftpDownloadRunning=true;
            
            //讲txt的下载操作和解析操作分成2个独立的操作进行,排除互相间的干扰
            if(flag==false)//文件不存在进行ftp下载操作
            {
                FTPClient ftp=null;            
                try
                {
                    //ftp的数据下载
                    ftp=new FTPClient();
                    ftp.connect(host, port);   
                    ftp.login(user, password);
                    ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
                    
                    //设置linux环境
                    FTPClientConfig conf = new FTPClientConfig( FTPClientConfig.SYST_UNIX);
                    ftp.configure(conf);
                    
                    //判断是否连接成功
                    int reply = ftp.getReplyCode();
                    if (!FTPReply.isPositiveCompletion(reply))
                    {
                        ftp.disconnect();
                        System.out.println("FTP server refused connection.");
                        return;
                    }
                    
                    //设置访问被动模式
                    ftp.setRemoteVerificationEnabled(false);
                    ftp.enterLocalPassiveMode();
                    
                    
                    //检索ftp目录下所有的文件,利用时间字符串进行过滤
                    boolean dir = ftp.changeWorkingDirectory(txtFileDir);
                    if (dir) 
                    { 
                        FTPFile[]fs = ftp.listFiles(); 
                        for(FTPFile f:fs)
                        { 
                              if(f.getName().indexOf(today1+"2000")>0)
                              {  
                                  System.out.println(new Date()+"  ftpDownload定时器下载txt成功");        
                                  File localFile = new File(txtSaveDir+f.getName());    
                                  OutputStream ios = new FileOutputStream(localFile);     
                                  ftp.retrieveFile(f.getName(), ios);  
                                  ios.close();   
                                  break;
                               }    
                        }
                    }
                } 
                catch (Exception e)
                {
                    e.printStackTrace();
                    System.out.println(new Date()+"  ftp下载txt文件发生错误");
                }
                finally
                {
                    if(ftp != null)  try {ftp.disconnect();} catch (IOException ioe) {}  
                }

    3、使用ftp从windows服务器下载文件

    public static boolean downFile(  
                String url, //FTP服务器hostname  
                int port,//FTP服务器端口  
                String username, //FTP登录账号  
                String password, //FTP登录密码  
                String remotePath,//FTP服务器上的相对路径   
                String fileName,//要下载的文件名  
                String localPath//下载后保存到本地的路径 
    
                ) {    
            boolean success = false;    
            FTPClient ftp = new FTPClient();    
            try {    
                int reply;    
                ftp.connect(url, port);    
                //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器     
                ftp.login(username, password);//登录     
                reply = ftp.getReplyCode();    
                if (!FTPReply.isPositiveCompletion(reply)) {    
                    ftp.disconnect();    
                    return success;    
                }   
                System.out.println("aaa");
                ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录     
                FTPFile[] fs = ftp.listFiles();  
                
                for(FTPFile ff:fs){ 
                 System.out.println("bb" + fs);
                 
                    if(ff.getName().equals(fileName)){  
                     System.out.println("dd");
                        File localFile = new File(localPath+"/"+ff.getName());    
                        OutputStream is = new FileOutputStream(localFile);     
                        ftp.retrieveFile(ff.getName(), is);  
                        System.out.println("ccc" +ff.getName()+fileName);
                        is.close();    
                    }    
                }    
                ftp.logout();    
                success = true;    
            } catch (IOException e) {    
                e.printStackTrace();    
            } finally {    
                if (ftp.isConnected()) {    
                    try {    
                        ftp.disconnect();    
                    } catch (IOException ioe) {    
                    }    
                }    
            }    
            return success;    
        }

     

    转载于:https://www.cnblogs.com/tiandi/p/5936218.html

    展开全文
  • java实现通过ftp下载文件

    千次阅读 2020-11-05 10:21:19
    public void downloadFtpFiles() throws ParseException { String localDirs = PropertiesUtils.getProperties(Constants.LOCAL_DIR); String ftplocalDir = PropertiesUtils.... FTPClient ftp=ftpConfig.conn..
  • PHP FTP下载服务器文件流程

    千次阅读 2020-05-25 11:54:43
    $conn=ftp_connect($host,21); if(!$conn){ exit('不能连接到服务器'); } echo '连接到服务器...<br/>'; $result=@ftp_login($conn,$user,$pass); if(!$result){ exit('不能登陆到服务器,用户'.$user);...
  • c#通过ftp下载文件

    万次阅读 2017-12-21 15:07:28
    c#通过ftp下载文件,借用了两位大神的代码  http://www.cnblogs.com/rond/archive/2012/07/30/2611295.html http://blog.csdn.net/csethcrm/article/details/8139744 感谢  在这做下记录 using System; ...
  • Qt实现FTP下载

    千次阅读 2017-01-18 15:28:40
    简单实现ftp下载上传功能,因为Qt5不再支持QFtp类,需要的话得重现编译.所以遗憾未实现一个目录列表.只能在根目录上传下载.效果如下: /*---------------ftpmanager.h---------------------*/ #ifndef FTPMANAGER_H #...
  • JAVA 解决FTP下载文件不完整问题

    千次阅读 2019-09-12 10:56:46
    在使用java的ftp下载服务器上的文件获取文件的byte[],然后对byte进行加密传输时, 注意是要获取byte[],而不是下载文件到本地; 发现下载的byte[]大小总是小于文件实际大小,并且下载的大小是变化的 到网上查阅...
  • ftp下载时,执行到ftpClient.retrieveFile(fileName, os); 这个方法就卡死了,在网上找了很多方法也不行, ftpClient.enterLocalPassiveMode(); 加上主动被动都不行,跪求大神帮忙解决 ![图片说明]...
  • // 联接FTP服务器 $conn = ftp_connect(ftp.server.com); // 使用username和password登录 ftp_login($conn, “john”, “doe”); // 获取远端系统类型 ftp_systype($conn); // 列示文件 $...
  • excel使用vba语言实现宏,虽然没学过 但是大致的代码可以看懂 就搞了一个打开excel自动运行宏 在ftp服务器上下载文件到本地的小脚本 0x01 配置 首先需要打开excel的宏,在excel的 开始-》选项-》信任中心 -》宏...
  • java中用ftp下载服务器上的文件,下载是自己电脑的路径,在本地跑,下载没有问题,真实环境就不行了,真实环境根本找不到路径? 如何解决啊~~~在线等~~~~~ public static File downloadFile( String url, //FTP...
  • ftp下载怎么操作,使用教程

    千次阅读 2020-05-26 23:00:13
    那么今天小编分享下ftp下载上传的操作方法,需要用到ftp工具,小编自己使用的是IIS7服务器管理工具: 第一步:点击主程序图中“上传下载”键; 第二步:点击“ Ftp”; 第三步:点击“添加”; 第四步:在弹...
  • python ftp下载文件

    千次阅读 2019-03-15 15:47:13
    # -*- coding: utf-8 -*- ...#实现从ftp下载文件到本地 from ftplib import FTP import os def ftpconnect(host, username, password): ftp = FTP() # 设置变量 timeout = 30 port = 21 ...
  • springBoot下的ftp下载

    千次阅读 2017-11-27 11:17:15
    springBoot下的ftp下载 springboot-Environment ftp登录、退出 打包下载 本实例将创建一个ftp打包文件的工具类 Environment类获取配置信息springboot的Environment类,可以获取到所有的配置资源。如果我们用到ftp,...
  • python实现ftp下载数据

    千次阅读 2018-12-18 21:09:18
    话不多说,直接上代码 #coding=utf-8 #from ctypes import * ''' 利用python的ctypes模块可以在python中调用c/c++写的代码。 但是c/c++写的代码要编译成dll文件,...import ftplib # 定义了FTP类,实现ftp上传和下...
  • 1.添加依赖  camel-ftp依赖与commons-net依赖两者取其中一个即可    org.apache.camel  camel-ftp  2.13.2      commons-net  commons-
  • 这个方法在我本机中的配置,下载可以,没有任何问题,部署在公司的测试环境中 下载文件就会损坏 @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ...
  • 直接用地址下载,引用进度条: ​ /// <summary> /// 从ftp服务器下载文件的功能----带进度条 /// </summary>...param name="ftpfilepath">ftp下载的地址</param> /// <param ...
  • 今天遇到问题从ftp下载文件到本地路径无法查看,发现是文件名称中含有比如空格,问号等非常规字符存在,虽然在本地创建了对应的文件,但是流无法识别一些非常规字符,所以即使下载到本地也显示文件损坏或错误。...
  • 第一步:连接ftp服务器 连接这里要注意的是设置ftpclient超时属性一定要在connect(连接)前设置好,否则不会生效 其中阻塞问题是设置ftpClient.setSoTimeout(1 * 60 * 1000);这个属性是超时处...
  • linux 连接 ftp 下载文件

    万次阅读 2018-04-13 10:29:17
    需要用root权限的,用下面语句登录root:[java] view plain copysudo -i 登出 exit安装ftp简单粗暴直接运行下面命令:[java] view plain copyyum -y install ftp P.S.还有一种ftp是:在linux中使用的FTP是...
  • Linux下shell脚本ftp下载文件

    千次阅读 2019-01-16 10:00:40
    331 Please specify the password. 530 Login incorrect. Login failed. 530 Please login with USER and PASS. ...#连接ftp服务器信息 IP=XXXX PORT=XXXX username=XXXX #注意密码有特殊字符一定要转义 加...
  • Http下载与Ftp下载区别

    千次阅读 2017-08-25 15:12:46
    FTP是File Transportation Protocol(文件传输协议)的缩写,而HTTP则是Hyper Text Transportation Protocol(超文本传输协议)的缩写,它们是计算机之间交换数据的方式,也是两种最经典的文件下载方式。FTP专门用来...
  • 使用java下载ftp文件时,报错如下, ![图片说明](https://img-ask.csdn.net/upload/201805/19/1526659568_447688.png) 经过检验,并不是没有这个文件; 只是因为权限不够,我把这个文件权限给成777是可以的; 但是...
  • winform实现FTP上传、下载、删除文件。自己写的Demo,亲测可用!
  • 欢迎订阅WX众号:基因学苑,更多精彩内容等你发掘! 基因学苑Q群:32798724 前面我们介绍了如何进行生物数据的检索,当得到了数据的下载地址之后,接下来就可以开始下载了,那么下载数据的...FTP下载 FTP 是File Tr...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 273,840
精华内容 109,536
关键字:

ftp下载