精华内容
下载资源
问答
  • 主要介绍了Android使用ftp方式实现文件上传和下载,需要的朋友可以参考下
  • JAVA操作FTP文件服务器上传与下载文件,包含远程动态创建文件夹、查看文件是否存在、删除文件、上传文件和下载文件等方法
  • FTP下载文件

    2018-10-08 19:35:07
    文档使用java语言实现从ftp服务器上下载文档至本地。
  • linux中ftp下载文件命令的用法

    千次阅读 2021-05-11 05:06:54
    一、linux中的ftp下载文件命令的用法从远程ftp服务器下载文件的命令格式:get 远程ftp服务器上当前目录下要下载的文件名 [下载到本地机器上当前目录时的文件名],如:get nmap_file [nmap]意思是把远程ftp服务器下的...

    linxu下的ftp命令是用来下载文件或者上传文件的,下面由学习啦小编为大家整理了linux的ftp下载文件命令的用法的相关知识,希望对大家有帮助!

    一、linux中的ftp下载文件命令的用法

    从远程ftp服务器下载文件的命令格式:

    get 远程ftp服务器上当前目录下要下载的文件名 [下载到本地机器上当前目录时的文件名],如:

    get nmap_file [nmap]

    意思是把远程ftp服务器下的文件nmap_file下载到本地机器的当前目录下,名称更改为nmap。

    带括号表示可写可不写,不写的话是以该文件名下载。

    如果要往ftp服务器上上传文件的话需要去修改一下vsftpd的配置文件,名称是vsftpd.conf,在/etc目录下。要把其中的“#write_enable=YES”前面的“#”去掉并保存,然后重启vsftpd服务:

    sudo service vsftpd restart。

    二、linux中的ftp上传文件命令的用法

    向远程ftp服务器上传文件的命令格式:

    put 本地机器上当前目录下要上传的文件名 [上传到远程ftp服务器上当前目录时的文件名],如:

    put sample.c [ftp_sample.c]

    意思是把本地机器当前目录下的文件smaple.c上传到远程ftp服务器的当前目录下,名称更改为ftp_sample.c。

    带括号表示可写可不写,不写的话是以该文件名上传。

    三、参考:linux中的ftp常用命令

    FTP>open [ftpservername],和指定的远程Linux FTP服务器连接。

    FTP>user [username] [password],使用指定远程Linux FTP服务器的用户登录。

    FTP>pwd,显示远程Linux FTP服务器上的当前路径。

    FTP>ls,列出远程Linux FTP服务器上当前路径下的目录和文件。

    FTP>dir,列出远程Linux FTP服务器上当前路径下的目录和文件(同上)。

    FTP>mkdir [foldname],在远程Linux FTP服务器上当前路径下建立指定目录。

    FTP>rmdir [foldname],删除远程Linux FTP服务器上当前路径下的指定目录。

    FTP>cd [foldname],更改远程Linux FTP服务器上的工作目录。

    FTP>delete [filename],删除远程Linux FTP服务器上指定的文件。

    FTP>rename [filename] [newfilename],重命名远程Linux FTP服务器上指定的文件。

    FTP>close,从远程Linux FTP服务器断开但保留FTP命令参数提示。

    FTP>disconnect,从远程Linux FTP服务器断开但保留FTP命令参数提示(同上)。

    FTP>bye,结束和远程Linux FTP服务器的连接。

    FTP>quit,结束和远程Linux FTP服务器的连接(同上)。

    FTP>!,直接从远程Linux FTP服务器进入到本地shell中。

    FTP>exit,(接上步)从本地shell环境中返回到远程Linux FTP服务器环境下。

    FTP>!ls,列出本地机器上当前路径下的目录和文件。

    FTP>lcd [foldname],更改本地机器的工作目录。

    FTP>?,显示ftp命令说明。

    FTP>help,显示ftp命令说明(同上)。

    展开全文
  • java从ftp上传下载文件

    2018-06-04 23:56:52
    java从ftp下载和上传文件.和sftp下载上传文件,jar包已经maven化.放入仓库即可使用
  • 本文介绍了在Java中,如何使用Java现有的可用的库来编写FTP客户端代码,并开发成Applet控件,做成基于Web的批量、大文件的上传下载控件。文章在比较了一系列FTP客户库的基础上,就其中一个比较通用且功能较强的j-ftp...
  • java实现连接登录Ftp下载Ftp指定文件夹下的所有文件,并解压所有压缩文件,同时支持对指定文件夹进行文件压缩
  • Ftp下载文件超时处理

    千次阅读 2020-12-29 10:36:59
    2、直接使用ftp命令下载(文件下载正常,但是没接收到返回码226) 3、文件实际下载成功(使用md5sum 校验文件是正常无损坏) 4、查看ftp服务器日志(vsftp.log)自己的服务器,如果是外部提供是无法查询的 ftp服务器...

    问题描述:

    使用apache 开源库:commons-net 里的ftp进行文件下载,下载过程中发现由于网络拥挤或者是文件太大导致程序假死,不继续执行(实际上文件下载成功)

    问题查找:
    1、测试下载小文件没有问题
    在这里插入图片描述
    2、直接使用ftp命令下载(文件下载正常,但是没接收到返回码226)
    在这里插入图片描述
    3、文件实际下载成功(使用md5sum 校验文件是正常无损坏)

    4、查看ftp服务器日志(vsftp.log)自己的服务器,如果是外部提供是无法查询的
    在这里插入图片描述
    ftp服务器端有正常返回,只是客户端没接收到

    原因:

    • FTPClient.listFiles()或者FTPClient.retrieveFile()方法时,就停止在那里,什么反应都没有,出现假死状态
    • 连接FTP服务器,长时间进行数据操作时,超时自动断开

    listFiles函数没反应可以下面方法(被动模式),这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据

    	ftpClient.enterLocalPassiveMode();//不加这个无法加载文件列表
    

    客户端断开连接添加keepAlive函数保持连接

    	ftpClient.login(username, password);
    	ftpClient.setControlKeepAliveTimeout(30);//用于设置传输控制命令的 Socket 的 alive 状态,注意单位为 s。
    	ftpClient.setControlKeepAliveReplyTimeout(3000);
    

    retrieveFile()函数源码分析:

        public boolean retrieveFile(String remote, OutputStream local)
        throws IOException
        {
            InputStream input;
            Socket socket;
    
            if ((socket = _openDataConnection_(FTPCommand.RETR, remote)) == null)
                return false;
    
            input = new BufferedInputStream(socket.getInputStream(),
                    getBufferSize());
            if (__fileType == ASCII_FILE_TYPE)
                input = new FromNetASCIIInputStream(input);
    
            CSL csl = null;
            //使用setControlKeepAliveTimeout函数就是作用于这块,保持客户端和服务器的连接
            if (__controlKeepAliveTimeout > 0) {
                csl = new CSL(this, __controlKeepAliveTimeout, __controlKeepAliveReplyTimeout);
            }
    
            // Treat everything else as binary for now
            try
            {
                Util.copyStream(input, local, getBufferSize(),
                        CopyStreamEvent.UNKNOWN_STREAM_SIZE, __mergeListeners(csl),
                        false);
            } finally {
                Util.closeQuietly(socket);
            }
    
            // Get the transfer response
            boolean ok = completePendingCommand();
            if (csl != null) {
                csl.cleanUp(); // fetch any outstanding keepalive replies
            }
            return ok;
        }
    

    通过上述函数的添加解决大文件下载超时没正常返回226出现的假死情况

    完整的连接ftp代码:

    public static FTPClient createFTPClient(String ip, Integer port, String username, String password, String workDir)
            throws SocketException, IOException {
        FTPClient ftpClient = new FTPClient();
    
    	ftpClient.setDefaultTimeout(30 * 60 * 1000);
    	ftpClient.setConnectTimeout(30 * 60 * 1000);
    	ftpClient.setDataTimeout(30 * 60 * 1000);
    
    	ftpClient.connect(ip, port == null ? 21 : port);
    	// socket连接,设置socket连接超时时间(单位:ms)
    	ftpClient.setSoTimeout(30 * 60 * 1000);
    	
    	ftpClient.enterLocalPassiveMode();//不加这个无法加载文件列表
    	ftpClient.login(username, password);
    	ftpClient.setControlKeepAliveTimeout(30);//用于设置传输控制命令的 Socket 的 alive 状态,注意单位为 s。
    	ftpClient.setControlKeepAliveReplyTimeout(3000);
    
    	ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
        int reply = ftpClient.getReplyCode();
        if (!FTPReply.isPositiveCompletion(reply)) {
            ftpClient.disconnect(); // 如果返回状态不再 200 ~ 300 则认为连接失败
            throw new RuntimeException("FTP链接失败");
        }
        if (workDir != null && !"".equals(workDir)) {
            ftpClient.changeWorkingDirectory(workDir);
        }
        return ftpClient;
    }
    

    更多参数设置参考地址:https://www.cnblogs.com/dasusu/p/10006899.html

    展开全文
  • 1、从远程ftp服务器下载文件的命令格式:get 远程ftp服务器上当前目录下要下载的文件名。2、附上ftp常用命令,如下所示:FTP>open [ftpservername],和指定的远程Linux FTP服务器连接。FTP>user [username] ...

    1、从远程ftp服务器下载文件的命令格式:

    get 远程ftp服务器上当前目录下要下载的文件名。

    2、附上ftp常用命令,如下所示:

    FTP>open [ftpservername],和指定的远程Linux FTP服务器连接。

    FTP>user [username] [password],使用指定远程Linux FTP服务器的用户登录。

    FTP>pwd,显示远程Linux FTP服务器上的当前路径。

    FTP>ls,列出远程Linux FTP服务器上当前路径下的目录和文件。

    FTP>dir,列出远程Linux FTP服务器上当前路径下的目录和文件(同上)。

    FTP>mkdir [foldname],在远程Linux FTP服务器上当前路径下建立指定目录。

    FTP>rmdir [foldname],删除远程Linux FTP服务器上当前路径下的指定目录。

    FTP>cd [foldname],更改远程Linux FTP服务器上的工作目录。

    FTP>delete [filename],删除远程Linux FTP服务器上指定的文件。

    FTP>rename [filename] [newfilename],重命名远程Linux FTP服务器上指定的文件。

    FTP>close,从远程Linux FTP服务器断开但保留FTP命令参数提示。

    FTP>disconnect,从远程Linux FTP服务器断开但保留FTP命令参数提示(同上)。

    FTP>bye,结束和远程Linux FTP服务器的连接。

    FTP>quit,结束和远程Linux FTP服务器的连接(同上)。

    FTP>!,直接从远程Linux FTP服务器进入到本地shell中。

    FTP>exit,(接上步)从本地shell环境中返回到远程Linux FTP服务器环境下。

    FTP>!ls,列出本地机器上当前路径下的目录和文件。

    FTP>lcd [foldname],更改本地机器的工作目录。

    取消

    评论

    展开全文
  • 完整实现ftp上传与下载并解析csv文件,并实现对文件内容进行分析及错误信息的提示及保存日志,并可以实现多个文件同时下载,并且同时解析
  • 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..
      public void downloadFtpFiles() throws ParseException {
            String localDirs = PropertiesUtils.getProperties(Constants.LOCAL_DIR);
            String ftplocalDir = PropertiesUtils.getProperties(Constants.ftplocal_dir);
            FTPClient ftp=ftpConfig.connectFtpServer();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM
            String time= simpleDateFormat.format(new Date());
            String dirName=DateUtil.getBeforeDayYMD(time);
            try {
                //获取ftp目录下的文件夹名
                ftp.changeWorkingDirectory(ftp上路径);
                FTPFile[] fs = ftp.listFiles();
                for (FTPFile ff:fs) {
                    String fileName = ff.getName();
                    boolean flag = false;
                    // 切换目录,若当前是目录则返回true,否则返回false。
                    flag = ftp.changeWorkingDirectory(fileName);
                    if (flag) {
                        ftp.changeToParentDirectory();
                    }
                    if (flag) {
                        String localDir = 本地地址+ fileName;
                        logger.debug("开始下载" + fileName+dirName + "目录,本地目录为" + localDir);
                        File temp = new File(localDir);
                        if (!temp.exists()) {
                            temp.mkdirs();
                        }
                        //进入下载主目录。
                        ftp.changeWorkingDirectory(fileName);
    //                                for (String dirName : Dirs) {
                        //遍历需要下载的文件夹 1、切换ftp远程目录,进入需要下载文件的目录.
                        boolean fl = ftp.changeWorkingDirectory(dirName);
                        if (fl) {
                            String localSubDirName = 本地地址+ File.separator + dirName;
                            File localSubDir = new File(localSubDirName);
                            if (!localSubDir.exists()) {
                                //当本地目录不存在时,创建本地目录.
                                localSubDir.mkdirs();
                            }
                            //获取该目录文件列表.
                            String[] fileNames = ftp.listNames();
                            if (null != fileNames && fileNames.length > 0) {
                                for (String fn : fileNames) {
                                    File localFile = new File(localSubDirName + File.separator + fn);
                                    if (!localFile.exists()) {
                                        FileOutputStream fos = new FileOutputStream(localFile);
                                        ftp.retrieveFile(fn, fos);
                                    }
                                }
    //                                            updateNotifyDate(fileName, dirName);
                                ftp.changeToParentDirectory();
                            }
                        }
    //                                }
                        ftp.changeToParentDirectory();
                        logger.info(fileName+dirName + "下载成功!");
                    }
    //                        }
    //                    }
    //                }
                }
                ftp.logout();
            } catch (Exception e) {
                e.printStackTrace();
                logger.error("异常!"+e);
            } finally {
                if (ftp.isConnected()) {
                    try {
                        ftp.disconnect();
                    } catch (IOException ioe) {
                        logger.error("io异常!"+ioe);
                    }
                }
            }
        }
    

    从FTP服务器下载指定文件夹中的所有最近更新的csv文件

    	/** 
    	 * Description: 从FTP服务器下载指定文件夹中的所有最近更新的csv文件 
    	 * @param url FTP服务器hostname 
    	 * @param port FTP服务器端口 
    	 * @param username FTP登录账号 
    	 * @param password FTP登录密码 
    	 * @param remotePath FTP服务器上的相对路径 
    	 * @param localPath 下载后保存到本地的路径 
    	 * @param dateStr 下载的是哪一天的数据
    	 * @return 下载的文件数
    	 */  
    	public static int downFileByPath(String url, int port, String username, String password, String remotePath, String localPath, String dateStr) {
    		int filesSize = 0;
    	    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 filesSize;  
    	        }  
    	        boolean result = ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录  
    	        if(!result){ //转移到指定目录失败
    	        	logger.error("找不到指定的ftp服务器目录:"+remotePath);
    	        	return filesSize;  
    	        }
    	        
    	        FTPFile[] fs = ftp.listFiles();
    	        String ffName = "";
    	        for(FTPFile ff:fs){
    	        	ffName = ff.getName();
    				if(ffName.endsWith(".csv") && ffName.contains(dateStr)){
    					File localFile = new File(localPath+"/"+ffName);
    	                OutputStream is = null;
    	                File path = new File(localPath);
    	                if(!((new File(localPath)).exists())){
    	                	path.mkdirs();
    	                }
    	                is = new FileOutputStream(localFile);
    	                ftp.retrieveFile(ffName, is);  
    	                logger.debug(ffName+" 下载成功!");
    	                filesSize++;
    				}
    	         }  
    	        ftp.logout();  
    	    } catch (IOException e) {
    	        //e.printStackTrace();  
    	    	logger.error("异常!"+e);
    	    } finally {  
    	        if (ftp.isConnected()) {  
    	            try {  
    	                ftp.disconnect();  
    	            } catch (IOException ioe) {
    	            	logger.error("io异常!"+ioe);
    	            }  
    	        }  
    	    }  
    	    return filesSize;
    	}
    
    展开全文
  • C# FTP上传下载文件

    2017-04-19 15:54:41
    FTP上传下载文件
  • FTP下载自动更新文件

    2019-03-28 09:38:44
    FTP模式下载文件更新,只要配置下载路径、用户名和密码多线程下载文件,根据文件大小支持断点下载文件。更新完成后自动打开运行的exe文件(需要配置)
  • java ftp下载文件

    千次阅读 2019-08-02 12:22:49
    1、使用官方正规的jar ...注意:使用ftp从windows服务器下载文件和从linux服务器下载文件不一样 2、用ftp从linux服务器下载文件 System.out.println(new Date()+" 开始进入ftpDownload定时器"); /...
  • 今天遇到问题从ftp下载文件到本地路径无法查看,发现是文件名称中含有比如空格,问号等非常规字符存在,虽然在本地创建了对应的文件,但是流无法识别一些非常规字符,所以即使下载到本地也显示文件损坏或错误。...
  • 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; ...
  • 下载文件就会损坏 @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String filename = request.getParameter("filename...
  • Qt5.8用ftp实现上传和下载文件,并带进度条显示
  • winform实现FTP上传、下载、删除文件。自己写的Demo,亲测可用!
  • python从FTP下载文件

    2012-12-22 23:38:45
    python从FTP下载文件,python搜集的FTP下载文件汇总,网上收集
  • 主要为大家详细介绍了windows下定时利用bat脚本实现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 ...
  • JAVA 解决FTP下载文件不完整问题

    千次阅读 2019-09-12 10:56:46
    在使用java的ftp下载服务器上的文件获取文件的byte[],然后对byte进行加密传输时, 注意是要获取byte[],而不是下载文件到本地; 发现下载的byte[]大小总是小于文件实际大小,并且下载的大小是变化的 到网上查阅...
  • 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是...
  • 1.添加依赖  camel-ftp依赖与commons-net依赖两者取其中一个即可    org.apache.camel  camel-ftp  2.13.2      commons-net  commons-
  • VC++通过FTP上传下载文件;包含了代码实现和简易破解实用的ftp服务端;通过vc++写了一个客户端程序,含有基本的ftp上传下载功能;服务器端这里提供了一个ftp服务器,自己可以随意配置就可以;简单实用,分享!
  • 使用java下载ftp文件时,报错如下, ![图片说明](https://img-ask.csdn.net/upload/201805/19/1526659568_447688.png) 经过检验,并不是没有这个文件; 只是因为权限不够,我把这个文件权限给成777是可以的; 但是...
  • 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 #注意密码有特殊字符一定要转义 加...
  • C#下载ftp指定目录下所有文件ftp地址、目录名、保存路径都写入了代码中,用户可根据需要自己修改即可。可下载目录下所有文件和文件夹。注解较少,我也是参照网上写的,本机运行正常。
  • Java中实现ftp下载文件至本地(详细): 2020-09-13:今天记录一下java中实现ftp下载文件至本地的功能模块,同此与大家交流分享有什么不对的地方大家可以指出! 1.FTP协议: 什么是FTP呢?FTP 是 TCP/IP 协议组中的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 506,757
精华内容 202,702
关键字:

ftp下载文件

友情链接: printPlay-master.zip