精华内容
下载资源
问答
  • 1、搭建FTP服务器 2、从ftp服务器下载文件 3、向ftp服务器上传文件

    1、搭建FTP服务器
    pip3 install pyftpdlib

    • 简单的本地验证
    from pyftpdlib.authorizers import DummyAuthorizer
    from pyftpdlib.handlers import FTPHandler
    from pyftpdlib.servers import FTPServer
    
    #实例虚拟用户,这是FTP验证的首要条件
    authorizer = DummyAuthorizer()
    
    #添加用户权限和路径,参数为(用户名,密码,用户目录,权限)
    authorizer.add_user('user','123','/download',perm='elradfmwM')
    
    #,如果添加匿名用户,只需要路径
    #authorizer.add_anonymous('/download')
    
    #初始化句柄
    handler = FTPHandler
    handler.authorizer = authorizer
    
    #监听ip和端口
    server = FTPServer(('192.168.120.60',21),handler)
    
    #开始服务
    server.server_forever()
    
    读权限
    e改变文件目录
    l列出文件
    r从服务器接收文件
    写权限
    a文件上传
    d删除文件
    f文件重命名
    m创建文件
    w写权限
    M文件传输模式(通过FTP设置文件权限)

    2、下载文件

    from ftplib import FTP
    
    f = FTP('192.168.120.60')
    f.login('user','123')
    ftpfile = '/download/'
    
    for i in f.nlst():
    	with open(i,'wb') as file:
    		f.retrbinary('RETR %s'%i,file.wirte)
    

    3、上传文件

    from ftplib import FTP
    import os
    
    f = FTP('192.168.120.60')
    f.login('user','123')
    localfile = './123.txt'
    
    with open(localfile ,'rb') as file:
    	f.storbinary('STOR %s'%os.path.basename(localfile),file)
    
    展开全文
  • 主要介绍了FTP服务器详解之监控ftp服务器、上传文件ftp服务器、ftp文件监控的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
  • ftp服务器上传下载文件,需要重新配置ftp的相关信息
  • FTP服务器单个文件下载FTP服务器文件打包下载
  • 主要为大家详细介绍了python实现从ftp服务器下载文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了python实现从ftp服务器下载文件的方法,涉及Python操作FTP的相关技巧,非常具有实用价值,需要的朋友可以参考下
  • linux 下sftp 登录ftp服务器下载文件

    千次阅读 2019-03-13 20:00:21
    1、使用sftp命令登录到ftp 服务器 sftp -oport=端口 用户名@ftp服务器 之后出现输入ftp密码, 2、使用 get 命令从 ftp服务器上将文件下载到本地 get ftp服务器文件 本地路径 ...

    1、使用sftp命令登录到ftp 服务器

    sftp   -oport=端口   用户名@ftp服务器

    之后出现 输入ftp密码,

    2、使用 get 命令从 ftp服务器上将文件下载到本地

    get  ftp服务器上文件   本地路径

    展开全文
  • 功能:完成从ftp服务器下载文件到本地电脑(整体复制即目录树是一样的)
  • java 从ftp服务器下载文件!方便快捷,哈哈!
  • FTP服务器文件的批量下载

    千次阅读 2018-01-08 22:52:29
    使用cmd命令批量下载FTP服务器上的文件

    点击电脑上的菜单,输入cmd,进入cmd命令执行框

    输入ftp,回车;输入“open FTP服务器地址”,回车

    输入用户名,回车;输入密码,回车(输入密码时屏幕并不会显示,*也没有,输完回车即可)

    输入cd,回车,进入此目录,输入dir,会显示此目录下的所有文件

    找到要下载的文件夹,输入"cd 文件夹名”,回车

    输入“lcd 要下载到的本地目录”回车,即可下载到这个本地目录

    输入mget **,回车,即可开始服务器当前文件夹下的所有文件批量下载

    输入close即可关闭此服务器的连接

    有用的网址https://jingyan.baidu.com/article/6525d4b1300912ac7d2e941b.html


    展开全文
  • Ftp服务器定时下载文件 并对文件解析 其中用到数据库 可以自己根据需求配置
  • 前几天,写了一篇关于如何上传图片保存至FTP服务器的文章,今天继续把上传到FTP服务器的图片下载下来,在页面中进行显示。也就是满足了我们日常代码demo中,页面需要动态加载的图片的实例的实现。(不再需要手动把...

    前几天,写了一篇关于如何上传图片保存至FTP服务器的文章,今天继续把上传到FTP服务器的图片下载下来,在页面中进行显示。也就是满足了我们日常代码demo中,页面需要动态加载的图片的实例的实现。(不再需要手动把图片保存在WebContent下static静态文件夹下哈哈哈,相信很多初学小伙伴为了实现这种效果都是这么干的)
    要点:前端通过ajax提交请求、Controller层ftp服务器路径的获取、本地路径的设置。

    1. html页面

    <html>
    <head>
    <title>获取FTP服务器上的图片</title>
    <meta charset="utf-8">
    </head>
    <body>
    <div>
    	 <a onclick="details();">家庭成员情况</a>
    </div>
    
    <div>
    	<table>
    		<tr>
    			<td>
    				<label>男方照片:</label>
    			</td>
    			<td>
    				<img id="boy"  alt="加载失败" height="50px" weight="50px" >
    			</td>
    		</tr>
    		<tr>
    			<td>
    				<label>女方照片:</label>
    			</td>
    			<td>
    				<img id="girl"  alt="加载失败" height="50px" weight="50px" >
    			</td>
    		</tr>
    	</table>
    </div>
    <script type="text/javascript">
    		function details() {
    		var jtbm = document.getElementById("e_jt").value;
    		$.ajax({
    			type : 'POST',
    			url : //请求controller的路径
    			data : {jt : jtbm},
    			success : function (d){
    
    				//请求成功,给照片处可以用下面的方法给src属性赋值
    				$("#boy").attr('src',d.map['boy']);
    				$("#girl").attr('src',d.map['girl']);
    			}
    		})
    	}
    </script>
    </body>
    </html>
    

    注意:Html代码中没有太多注意事项,完成一个请求就OK。

    2.Controller层代码

    看代码之前也看这么一个请求过程:
    当你在浏览器点击 发起一个请求 后,服务器端此时并没有图片,它只有(或者是他只能读取到)你在数据库中保存的图片路径,它需要继续向ftp服务器发送请求,把图片下载到本地服务器(Tomcat),前端页面通过寻找Tomcat中下载后保存的路径,才能够在页面上展现。
    当你在浏览器点击 发起一个请求 后,服务器端此时并没有图片,它只有(或者是他只能读取到)你在数据库中保存的图片路径,它需要继续向ftp服务器发送请求,把图片下载到本地服务器(Tomcat),前端页面通过寻找Tomcat中下载后保存的路径,才能够在页面上展现。

    
    	@RequestMapping("你的请求路径")
    	@ResponseBody
    	public ResponseModel findOne(String jt, HttpServletRequest request) {
    	    //获取项目发布后的路径,该方法可以获取到根目录。
    		localPath = request.getSession().getServletContext().getRealPath("");
    		System.out.println(localPath);
    
    		//ResponseModel是自己封装的一个SpringMVC aJax返回对象
    		ResponseModel model = new ResponseModel();
    
                /*此部分代码为业务逻辑处理,目的是为了通过传过来的 jt 获取到对应的保存在数据库中的图片路径
                  可忽略我的这部分代码,做你自己的逻辑处理,拿到图片路径即可
                  因为数据库中图片我们都只是保存的图片路径,而不是图片!!!*/
    			Object fms = daoHandler.findOne(FMSModel.class, jt);
    			MraModel mra = new MraModel();
    			Condition condition = new SimpleCondition();
    			System.out.println("==============....=");
    			condition.andEqual("JT_BH", jt);
    			System.out.println("============....===");
    
    			List<MraModel> list = (List<MraModel>) daoHandler.find(MraModel.class, condition);
    			System.out.println(list.get(0).getJtbh());
    			for(MraModel mm : list){
    				System.out.println(mm.getNfsfzfj());
    				boy = mm.getNfsfzfj();
    				System.out.println(mm.getNvfsfzfj());
    				girl = mm.getNvfsfzfj();
    				break;
    			}
    
                /*  业务逻辑处理结束 */
                /* 下面才是今天的重点 */
    			//从ftp服务器下载图片到 -- 服务器
    	
    	        //FtpConection为一个封装的工具类,下文可以看到代码
    			FtpConection conection = new FtpConection(ftp服务器地址, ftp服务器端口, ftp服务器用户名, ftp服务器密码);
    			
    			Map<String,String> map = new HashMap<String,String>();
    			//包含进文件名
    			if(boy != null){ //boy 保存的是从数据库中读取到的路径值,和你前面的业务逻辑处理有关。
    				
    				String hPath = "\\tempfiles\\"+boy; //在发布到本地tomcat后中保存的路径
    				String jsPath = "../../tempfiles/"+boy; //在前端页面取值时 的路径
    				localPath = localPath+hPath; //完整的本地路径
    				
    				boolean flag = conection.downloadFile(boy, localPath);
    				if (flag){
    					System.out.println("下载成功!");
    				}else{
    					System.out.println("下载 error");
    				}
    				map.put("boy",jsPath);
    			}
    			if(girl != null){
    				localPath = request.getSession().getServletContext().getRealPath("");
    				String hPath = "\\tempfiles\\"+girl;
    				String jsPath = "../../tempfiles/"+girl;
    				localPath = localPath+hPath;
    				System.out.println(localPath);
    				boolean flag = conection.downloadFile(girl, localPath);
    				if (flag){
    					System.out.println("下载成功!");
    				}else{
    					System.out.println("下载 error");
    				}
    				map.put("girl",jsPath);
    			}
    			
    			model.setObject(fms);
    			model.setMap(map);
    			model.success();
    		} catch (Exception e) {
    			e.printStackTrace();
    			model.error(e.getMessage());
    		}
    		return model;
    	}
    
    

    注意:

    • 1 request.getSession().getServletContext().getRealPath("")可以获取到项目发布后的路径,也就是为了 前端能顺利拿到图片,从ftp下载下来的图片必须保存在这个根目录下的某个文件夹
    • 2 String hPath = “\tempfiles\”+boy; //在发布到本地tomcat后中保存的路径
      String jsPath = “…/…/tempfiles/”+boy; //在前端页面取值时 的路径
      hPath就是发布到本地tomcat下中的某个路径,但在windows系统中,路径中 使用 “”,但在编译的项目中前端那图片路径中, 使用的是"/"。(注意这两个斜杠的方向)jsPath就是为了前台取值方便,直接通过jsPath就可以拿到值。
    • 3 至于jsPath为什么写成 …/…/这种形式,是因为发布后的项目,你当前的页面的位置和你保存的图片的位置不在同一个文件夹,通过 …/寻找上一级目录,然后走到保存图片的位置。
    • 4 最后把图片路径通过map键值对返回到前端页面

    3. 辅助工具类之 FtpConection

    /**
     * FTP服务器连接,用于访问FTP服务器,实现常用的创建目录、删除目录、上传文件、下载文件等操作。
     */
    public class FtpConection {
    	
    	/**
    	 * 文件上次的缓存区大小
    	 */
    	private static final int BUF_SIZE = 1024*1024;
    	private Logger logger = LoggerFactory.getLogger(FtpConection.class);
    
    	private String hostname;
    	private Integer port;
    	private String username;
    	private String password;
    	
    	FTPClient client;
    
    	/**
    	 * 创建一个与FTP服务器的连接。
    	 * @param url 服务器IP地址
    	 * @param prot 服务端口
    	 * @param username 用户名
    	 * @param password 密码
    	 */
    	public FtpConection(String url, Integer prot, String username, String password) {
    		this.hostname = url;
    		this.port = prot;
    		this.username = username;
    		this.password = password;
    		client = new FTPClient();
    		try {
    			client.connect(hostname, port);
    		} catch (SocketException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    			logger.error("FtpConection:链接FTP服务器发生异常!");
    		}
    		
    		try {
    			client.login(username, password);
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    			logger.error("FtpConection:登陆FTP服务器发生异常!");
    		}
    	}
    	
    	/**
    	 * 获得原始的FTPClient对象
    	 * @return FTPClient对象
    	 */
    	public FTPClient getClient() {
    		return client;
    	}
    
    	/**
    	 * 测试连接和登录是否成功
    	 * @return Boolean值,true-连接并登录成功,false-连接超时或登录失败。
    	 */
    	public boolean isConnected() {
    		boolean result = false;
            int reply = client.getReplyCode();
            String info = null;
            switch (reply) {
    		case 0:
    			info = "连接超时!";
    			break;
    		case 230:
    			info = "连接成功,登陆成功!";
    			result = true;
    			break;
    		case 530:
    			info = "用户名或密码错误!";
    			break;
    		}
            logger.info(info);
    		return result;
    	}
    
    	
    	/**
    	 * 上传文件
    	 * @param localPath 本地文件路径(含文件名)
    	 * @param serverPath FTP服务器存储路径(含文件名)
    	 * @return Boolean值,true-上传成功,false-上传失败(文件存在或目录错误)。
    	 * @throws IOException
    	 */
    	public boolean uploadFiles(String localPath, String serverPath) throws IOException {
    		boolean result = false;
    
    		client.setFileType(FTP.BINARY_FILE_TYPE);
    		client.enterLocalPassiveMode();
    		client.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
    		client.setBufferSize(BUF_SIZE);
    		
    		InputStream local = null;
    		try {
    			local = new FileInputStream(localPath);
    			result = client.storeFile(serverPath, local);
    		} finally {
    			if (local != null) {
    				local.close();
    			}
    		}
    	
    		return result;
    	}
    
    
    	/**
    	 * 利用流 上传文件
    	 * @param in 本地流
    	 * @param serverPath 服务器路径
    	 * @return True 文件上传成功,False 文件上传失败
    	 * @throws IOException
    	 */
    	public boolean uploadFiles(InputStream in, String serverPath) throws IOException {
    		boolean result = false;
    
    		client.setFileType(FTP.BINARY_FILE_TYPE);
    		client.enterLocalPassiveMode();
    		client.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
    		client.setBufferSize(BUF_SIZE);
    		
    		InputStream local = null;
    		try {
    			local = in;
    			result = client.storeFile(serverPath, local);
    		} finally {
    			if (local != null) {
    				local.close();
    			}
    		}
    	
    		return result;
    	}
    
    	/**
    	 * 下载文件
    	 * @param serverPath FTP服务器文件路径(含文件名)
    	 * @param localPath 本地存储文件路径(含文件名)
    	 * @return Boolean值,true-下载成功,false-下载失败(文件目录不存在或文件不存在)。
    	 * @throws IOException
    	 */
    	public boolean downloadFile(String serverPath, String localPath) throws IOException {
    		boolean result = false;
    
    		client.setFileType(FTP.BINARY_FILE_TYPE);
    		client.enterLocalPassiveMode();
    		client.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
    		client.setBufferSize(BUF_SIZE);
    		
    		OutputStream local = null;
    		try {
    			local = new FileOutputStream(localPath);
    			result = client.retrieveFile(serverPath, local);
    		} finally {
    			try {
    				local.close();
    			} catch (Exception e) {
    				// 本地目录不存在,下载失败。
    				logger.error("FTP 下载文件在本地保存出现异常,本地路径不存在!");
    				return false;
    			}
    		}
    		
    		return result;
    	}
    
    	
    	/**
    	 * 退出已登录的FTP用户
    	 * @return Boolean值,true-退出成功,false-退出失败(连接为登录)。
    	 * @throws IOException
    	 */
    	public boolean logout() throws IOException {
    		return client.logout();
    	}
    }
    

    4.辅助工具类之ResponseModel

    
    /**
     * Spring MVC AJAX response 返回对象
     * 
     *
     */
    public class ResponseModel implements Serializable {
    	private static final long serialVersionUID = -446626533112009414L;
    	
    	public static final String EMSG_SYS_ERROR 		= "服务器错误。";
    	public static final String EMSG_SUCCESS   		= "成功完成。";
    
    	public static final String STATUS_SYS_ERROR 		= "0";
    	public static final String STATUS_SUCCESS   		= "1";
    	public static final String STATUS_NO_PERMISSIONS 	= "2";
    	public static final String STATUS_UNKNOW_INPUT 		= "3";
    	public static final String STATUS_NO_LOGIN			= "4";
    
    	public static final String KEY_LIST 	= "list";
    	public static final String KEY_OBJECT 	= "obj";
    	public static final String KEY_MAP	 	= "map";
    
    
    	/**
    	 * 服务器响应状态(0:服务器错误|1:正确完成|2:权限不足|3:未知输入数据)
    	 */
    	private String status;
    	/**
    	 * 服务器错误信息
    	 */
    	private String emsg;
    	/**
    	 * 服务器响应数据
    	 */
    	private Map<String, Object> data;
    
    	public ResponseModel() {
    		super();
    		data = new HashMap<String, Object>();
    	}
    
    	public ResponseModel(String status, String emsg) {
    		this();
    		this.status = status;
    		this.emsg = emsg;
    	}
    
    	public String getStatus() {
    		return status;
    	}
    
    	public String getEmsg() {
    		return emsg;
    	}
    
    	public Map<String, Object> getData() {
    		return data;
    	}
    
    	public String getVersion() {
    		return version;
    	}
    
    	@Override
    	public String toString() {
    		return "ResponseModel [status=" + status + ", emsg=" + emsg + ", data="
    				+ data + "]";
    	}
    
    	/**
    	 * 成功完成。
    	 */
    	public ResponseModel success() {
    		this.success(EMSG_SUCCESS);
    		return this;
    	}
    
    
    
    	/**
    	 * 向返回Model中添加键/值数据。(默认调用success())
    	 * @param key
    	 * @param value
    	 */
    	public void put(String key, Object value) {
    		this.data.put(key, value);
    		this.success();
    	}
    
    	/**
    	 * 向返回Model中添加键/值数据。
    	 * @param key
    	 * @param value
    	 * @param isSuccess 是否成功返回。
    	 */
    	public void put(String key, Object value, boolean isSuccess) {
    		this.data.put(key, value);
    		if (isSuccess) {
    			this.success();
    		}
    	}
    	
    	public Object get(String key) {
    		return data.get(key);
    	}
    	
    	
    	/**
    	 * 向返回Model中添加对象。(使用默认的key[KEY_OBJECT],默认调用success()。)
    	 * @param obj
    	 */
    	public void setObject(Object obj) {
    		this.put(KEY_OBJECT, obj);
    		this.success();
    	}
    	
    	/**
    	 * 向返回Model中添加Map对象。(使用默认的key[KEY_MAP],默认调用success()。)
    	 * @param map
    	 */
    	public void setMap(Map<?, ?> map) {
    		this.put(KEY_MAP, map);
    		this.success();
    	}
    }
    
    

    至于你的项目发布后,各个文件夹的相对位置可以通过右键项目–》 Properties --》Deployment Assembly 查看
    查看项目发布后的路径

    原创文章,未经作者允许,严禁转载!
    文章:如何上传文件图片至FTP 服务器

    展开全文
  • 建立一个ftp服务器,实现文件的上传和下载
  • 如何登陆FTP服务器下载文件

    千次阅读 2018-10-09 14:11:24
    在网上我们经常可以看到很多如何搭建FTP服务器的经验,但是却缺少详细的如何登陆FTP服务器的经验,当然对于电脑熟练者来说这可能很简单,但是我想也有相当一部分人不知道如何从FTP服务器下载文件,下面小菜就给...
  • c#从ftp服务器下载文件 丢给浏览器响应
  • 利用cmd连接ftp服务器上传下载文件

    万次阅读 2016-11-01 08:56:11
    3.此时要求输入账号密码的,如下截图:(ftp服务器是我在本地搭建的,偷懒下,哈哈,不过这里要注意下,ftp服务器要以管理员身份运行,不然没有上传权限的) 4.这时可以输入dir命令查看,当前目录 5.还可以用cd命令来进入...
  • Linux访问远程FTP服务器下载文件

    千次阅读 2019-01-03 09:43:59
    二、客户端连接ftp服务器 格式:ftp [hostname| ip-address] a)在linux命令行下输入:ftp 10.18.34.115 b)服务器询问你用户名和口令,分别输入用户名和相应密码,待认证通过即可。 三、上传下载文件 1、下载文件...
  • java+jsp代码实现从FTP服务器上传下载文件。 里面给了java方法和jsp页面的代码。主要是实现从FTP服务器上面下载文件到自己本地文件夹下面。另外还给了几个网站供大家参考。
  • 最近工作碰到一个问题,之前是使用bat程序从FTP服务器上获取文件的,在防火墙关闭的时候没有问题可以正常下载下来,但是当开启防火墙之后,就无法下载了提示连接超时,但是我用FTP客户端是可以下载的,用CMD命令开启...
  • 之前有个喜人的家伙问我,说为啥我不管,我就帮他远程了以下问题,发现他的地址密码全是乱输的~~~~你们别逗我好不好 ... * Description: 从FTP服务器下载文件 * * @param url * FTP服务器hostname
  • 第2篇 将本地文件上传到远程FTP服务器和从远程FTP服务器下载文件到本地 1、首先需要在本地设置一个FTP站点 (1)我的电脑——》管理——》本地用户和组——》用户——》新增用户,即设置FTP登录的用户名和密码 ...
  • 用命令从FTP服务器下载文件

    千次阅读 2020-05-20 16:57:57
    用命令从FTP服务器下载文件 1、FTP 服务器地址 。进入对应服务器 2、输入用户名和密码 3、dir 。查看服务器中的文件 4、cd 文件位置 。 进入被下载文件的当前位置 5、lcd 本地文件目录 。设置文件下载到的本机位置...
  • linux下载ftp服务器文件

    千次阅读 2018-03-02 14:44:04
    wget -P 指定文件保存位置 ftp://ip:端口/文件夹 --ftp-user=用户名 --ftp-password=密码。-nH不创建服务器目录 可选-m 现在所有目录包文件(包含子目录)若无文件夹则端口后面最好添加/...
  • Linux下使用wget下载FTP服务器文件

    千次阅读 2019-02-12 17:02:51
    wget ftp://ftp_user:password@ftp_ip/filename -P /  解释: ...ftp_ip:ftp服务器ip - P :下载到指定目录 举例: wget ftp://test1:12345678@172.16.10.60/source01/1.mp4 -P /home/admin...
  • 测试网络 首先我们需要将电脑和手机连接在同一个WIFI下,然后用计算机尝试ping手机的IP地址: ping通了,说明在同一个网络下。 手机下载并设置AndFTP ...然后我们试着从服务器下载文件下载成功了: ...
  • 实现从FTP服务器下载PDF,标有注释。
  • window系统下使用,从ftp服务器下载文件下载后,解压到c盘根目录,修改ftp.txt文件中的IP地址,ftp用户名和密码,执行ftp.bat后,把ftP服务器上的文件下载到c:/ftpfile目录。
  • 首先要选用支持FTP功能的模块,以龙尚U9507模块为例,一般datashit里面都对应的指令:如下其次,进行FTP服务器上传下载文件操作之前,要先插SIM卡,注册网络,建立TCP连接等等基础的操作,不要妄想在TCP连接后发送...
  • FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地...
  • 主要介绍了Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 310,075
精华内容 124,030
关键字:

ftp服务器文件下载