FTP协议

        FTP是一个文件传输协议,可以用于互联网双向传输,控制文件下载空间在服务器复制文件从本地计算机或本地上传文件复制到服务器上的空间。在JAVA中我们可以通过FTPClient来利用FTP协议进行文件传输。

        首先,我们需要使用一个FTP服务器软件来设置一个用户,在成功连接到FTP服务器并验证身份后读取指定目录下的文件内容。

FTPClient ftpClient=new FTPClient();
		try {
			//1.连接FTP服务器并验证用户名密码
			ftpClient.connect("192.168.254.155",21);
			ftpClient.login("gx", "0000");
			
            //2.切换目录
			boolean isChange=ftpClient.changeWorkingDirectory("gx");
			if(isChange) {
				//切换成功:获取当前目录中的所有文件
				FTPFile[] ftpFileList=ftpClient.listFiles();    
                //对日期进行格式化
				SimpleDateFormat fmt=new SimpleDateFormat("yyyy年MM月dd日");
				for (FTPFile ftpFile : ftpFileList) {
					String fileName=ftpFile.getName();
                    //处理中文名乱码
					fileName=new String(fileName.getBytes("iso-8859-1"),"gb2312");
					System.out.println("文件名称:"+fileName);
					
					Date date=ftpFile.getTimestamp().getTime();
					System.out.println("创建时间:"+fmt.format(date));
					System.out.println("文件大小:"+ftpFile.getSize()+"字节");
				}
			}else {
                //切换失败,创建指定目录
				ftpClient.makeDirectory("gx");
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}

        能够读取到指定目录,就可以对其进行上传(代码如下:)

//基于FTP协议的文件上传

//创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftpClient=new FTPClient();
		
		try (InputStream in=new FileInputStream("C:\\Users\\GX\\Pictures\\Saved Pictures\\微信图片_20230707163804.jpg")){
            //1.进入FTP服务器并验证用户名和密码
			ftpClient.connect("192.168.254.148",21);
			ftpClient.login("spp", "123");
            
            //2.切换到具体的目录
			boolean isChange=ftpClient.changeWorkingDirectory("gx");
			if(!isChange) {
                //创建指定目录
				ftpClient.makeDirectory("gx");
                //切换
				ftpClient.changeWorkingDirectory("gx");
			}
            //3.文件上传
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//设置文件类型

            //存文件至FTP服务器
            //参数1:FTP文件的保存名称
            //参数2:本地文件输入流
			boolean isStore=ftpClient.storeFile(System.currentTimeMillis()+".jpg", in);
			System.out.println("上传成功?"+isStore);
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				ftpClient.disconnect();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

        有文件上传,当然也可以从FTP服务器中下载文件(代码如下:)

//基于FTP协议的文件下载

//创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftpClient=new FTPClient();
		
		try (OutputStream out=new FileOutputStream("C:\\text\\gx\\"+System.currentTimeMillis()+".jpg")){
            //1.连接FTP服务器并验证用户名和密码
			ftpClient.connect("192.168.254.155",21);
			ftpClient.login("gx", "0000");
            
            //2.切换至指定目录
			ftpClient.changeWorkingDirectory("spp");
			
            //3.下载指定文件
            //从FTP服务器下载指定文件至本地
            //参数1:FTP文件的保存名称
            //参数2:本地文件输出流
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//文件类型
			boolean isRetrieve=ftpClient.retrieveFile("1688797624841.jpg", out);
			System.out.println("下载成功?"+isRetrieve);
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
                //断开连接
				ftpClient.disconnect();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

文章来源地址https://uudwc.com/A/4E0vY

原文地址:https://blog.csdn.net/weixin_52237268/article/details/131613278

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年07月09日 20:44
HTML案例:滚动条下拉后导航栏有网格状效果
下一篇 2023年07月09日 20:44