重庆网站建设网站,福州网站大全,网站策划选题,做仿网站的书简介
FTP#xff08;File Transfer Protocol#xff0c;文件传输协议#xff09; 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分#xff0c;其一为FTP服务器#xff0c;其二为FTP客户端。其中FTP服务器用来存储文件#xff0c;用户可以使用FTP客户端通过FTP协…简介
FTPFile Transfer Protocol文件传输协议 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分其一为FTP服务器其二为FTP客户端。其中FTP服务器用来存储文件用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候通常利用FTP协议把网页或程序传到Web服务器上。此外由于FTP传输效率非常高在网络上传输大的文件时一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口其中20用于传输数据21用于传输控制信息。但是是否使用20作为传输数据的端口与FTP使用的传输模式有关如果采用主动模式那么数据传输端口就是20如果采用被动模式则具体最终使用哪个端口要服务器端和客户端协商决定。
FTP服务器搭建 FileZilla Server 是一款小巧的FTP服务器软件若你想玩玩简单的ftp服务器那你可以试试这个耗用系统资源相当小的软件让你轻松又容易架设一FTP服务器,新增组配置上传及下载速度限制用户在线显示及踢除。 下载安装说明文档在百度云盘里自行下载: 链接https://pan.baidu.com/s/1Kr5k-HmIl9VRA9cx4paDRA 提取码uyfa 服务器安装好了就可以在浏览器输入ftp://127.0.0.1查看是否搭建成功输入自己设置的用户及密码 文件的上传与下载
上传 将自己D盘下的一张图片上传到ftp服务器 /*** 向FTP服务器上传文件** param host FTP服务器hostname* param port FTP服务器端口* param username FTP登录账号* param password FTP登录密码* param basePath FTP服务器基础目录* param filePath FTP服务器文件存放路径。例如分日期存放/2015/01/01。文件的路径为basePathfilePath* param filename 上传到FTP服务器上的文件名* param input 本地要上传的文件的 输入流* return 成功返回true否则返回false*/public static boolean uploadFile(String host, int port, String username, String password, String basePath,String filePath, String filename, InputStream input) {boolean result false;FTPClient ftp new FTPClient();try {int reply;ftp.connect(host, port);// 连接FTP服务器// 如果采用默认端口可以使用ftp.connect(host)的方式直接连接FTP服务器ftp.login(username, password);// 登录reply ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return result;}//切换到上传目录if (!ftp.changeWorkingDirectory(basePath filePath)) {//如果目录不存在创建目录String[] dirs filePath.split(/);String tempPath basePath;for (String dir : dirs) {if (null dir || .equals(dir)) continue;tempPath / dir;if (!ftp.changeWorkingDirectory(tempPath)) {if (!ftp.makeDirectory(tempPath)) {return result;} else {ftp.changeWorkingDirectory(tempPath);}}}}//设置上传文件的类型为二进制类型ftp.setFileType(FTP.BINARY_FILE_TYPE);//上传文件if (!ftp.storeFile(filename, input)) {return result;}input.close();ftp.logout();result true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return result;}public static void main(String[] args) {try {FileInputStream inputStream new FileInputStream(new File(D:\\kebi.jpg));boolean flag uploadFile(127.0.0.1, 21, cy01, cy2016,/, /images, BlackMB.jpg, inputStream);System.out.println(flag);} catch (FileNotFoundException e) {e.printStackTrace();}}显示上传成功看下ftp服务器中是否有刚才上传的图片发现上传成功。 下载 将刚才上传的图片下载到本地E盘根目录下 /*** 从FTP服务器下载文件* param host FTP服务器hostname* param port FTP服务器端口* param username FTP登录账号* param password FTP登录密码* param remotePath FTP服务器上的相对路径* param fileName 要下载的文件名* param localPath 下载后保存到本地的路径* return*/public static boolean downloadFile(String host, int port, String username, String password, String remotePath,String fileName, String localPath) {boolean result false;FTPClient ftp new FTPClient();try {int reply;ftp.connect(host, port);// 如果采用默认端口可以使用ftp.connect(host)的方式直接连接FTP服务器ftp.login(username, password);// 登录reply ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return result;}ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录FTPFile[] fs ftp.listFiles();for (FTPFile ff : fs) {if (ff.getName().equals(fileName)) {File localFile new File(localPath / ff.getName());OutputStream is new FileOutputStream(localFile);ftp.retrieveFile(ff.getName(), is);is.close();}}ftp.logout();result true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return result;}public static void main(String[] args) {boolean flag downloadFile(127.0.0.1, 21, cy01, cy2016,/images, BlackMB.jpg, E:\\);System.out.println(flag);}下载成功在E盘下也能看见下载的图片。
总结 FTP是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照 FTP 协议提供服务进行文件传送的计算机就是 FTP服务器而连接FTP服务器遵循FTP协议与服务器传送文件的电脑就是FTP客户端。用户要连上FTP 服务器就要用到 FTP 的客户端软件通常 Windows自带“ftp”命令这是一个命令行的 FTP客户程序另外常用的 FTP 客户程序还有FileZilla、 CuteFTP、Ws_FTP、Flashfxp、LeapFTP 等。 FTP支持两种模式一种方式叫做Standard (也就是 PORT方式主动方式)一种是 Passive(也就是PASV被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。 要连上 FTP 服务器即“登陆”必须要有该 FTP 服务器授权的帐号也就是说你只有在有了一个用户标识和一个口令后才能登陆FTP服务器享受FTP服务器提供的服务。 FTP的传输有两种方式ASCII传输模式和二进制数据传输模式。