ftpclient怎么上传文件
在java程序开发中,ftp用的比较多,经常打交道,比如说向FTP服务器上传文件、下载文件,现在给大家介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传文件。
原理就不介绍了,大家直接看代码
/ Description: 向FTP服务器上传文件 @Version10 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heavencom)创建 @param url FTP服务器hostname @param port FTP服务器端口 @param username FTP登录账号 @param password FTP登录密码 @param path FTP服务器保存目录 @param filename 上传到FTP服务器上的文件名 @param input 输入流 @return 成功返回true,否则返回false / publicstaticboolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) { boolean success = false; FTPClient ftp = new FTPClient(); try { int reply; ftpconnect(url, port);//连接FTP服务器 //如果采用默认端口,可以使用ftpconnect(url)的方式直接连接FTP服务器 ftplogin(username, password);//登录 reply = ftpgetReplyCode(); if (!FTPReplyisPositiveCompletion(reply)) { ftpdisconnect(); return success; } ftpchangeWorkingDirectory(path); ftpstoreFile(filename, input); inputclose(); ftplogout(); success = true; } catch (IOException e) { eprintStackTrace(); } finally { if (ftpisConnected()) { try { ftpdisconnect(); } catch (IOException ioe) { } } } return success; }pre/pre / Description: 向FTP服务器上传文件 @Version10 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heavencom)创建 @param url FTP服务器hostname @param port FTP服务器端口 @param username FTP登录账号 @param password FTP登录密码 @param path FTP服务器保存目录 @param filename 上传到FTP服务器上的文件名 @param input 输入流 @return 成功返回true,否则返回false / public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) { boolean success = false; FTPClient ftp = new FTPClient(); try { int reply; ftpconnect(url, port);//连接FTP服务器 //如果采用默认端口,可以使用ftpconnect(url)的方式直接连接FTP服务器 ftplogin(username, password);//登录 reply = ftpgetReplyCode(); if (!FTPReplyisPositiveCompletion(reply)) { ftpdisconnect(); return success; } ftpchangeWorkingDirectory(path); ftpstoreFile(filename, input); inputclose(); ftplogout(); success = true; } catch (IOException e) { eprintStackTrace(); } finally { if (ftpisConnected()) { try { ftpdisconnect(); } catch (IOException ioe) { } } } return success; }
两个小例子: 1将本地文件上传到FTP服务器上,代码如下: @Test publicvoid testUpLoadFromDisk(){ try { FileInputStream in=new FileInputStream(new File("D:/testtxt")); boolean flag = uploadFile("127001", 21, "test", "test", "D:/ftp", "testtxt", in); Systemoutprintln(flag); } catch (FileNotFoundException e) { eprintStackTrace(); } }pre/pre @Test public void testUpLoadFromDisk(){ try { FileInputStream in=new FileInputStream(new File("D:/testtxt")); boolean flag = uploadFile("127001", 21, "test", "test", "D:/ftp", "testtxt", in); Systemoutprintln(flag); } catch (FileNotFoundException e) { eprintStackTrace(); } }
2在FTP服务器上生成一个文件,并将一个字符串写入到该文件中 @Test publicvoid testUpLoadFromString(){ try { InputStream input = new ByteArrayInputStream("test ftp"getBytes("utf-8")); boolean flag = uploadFile("127001", 21, "test", "test", "D:/ftp", "testtxt", input); Systemoutprintln(flag); } catch (UnsupportedEncodingException e) { eprintStackTrace(); } }pre/pre @Test public void testUpLoadFromString(){ try { InputStream input = new ByteArrayInputStream("test ftp"getBytes("utf-8")); boolean flag = uploadFile("127001", 21, "test", "test", "D:/ftp", "testtxt", input); Systemoutprintln(flag); } catch (UnsupportedEncodingException e) { eprintStackTrace(); } }
题主你好,
从服务器上下载文件或向服务器上传文件最常用的命令当属scp了,使用方法也简单
一先说题主问题中的情况,即从服务器上往回拿文件(官话一点的表达:从服务器上将文件下载到本地):
scp 服务器用户名@服务器ip:文件的绝对路径 要将文件保存到本地哪
举例来说,我的服务器地址是1111,用户名为hellofriend,并且在服务器上的/home/hellofriend/下有个名为ok的文件,则我想将服务器上的这个ok文件下载到本地的根目录,/,下用到的命令为:
scp hellofriend@1111:/home/hellofriend/ok /
命令执行完成后,会提示你输入hellofriend这个用户的密码,密码输入完成后,回车,正常情况下,你在根目录下就能看到ok文件了
新手注意事项:
aip地址和文件路径中间有个冒号;
b文件路径一般用绝对路径,即从根开始找;
c不要忘了写你要将文件保存在本地的哪里;
-----
二再说如何将本地文件上传到服务器,这个不细说,命令和上面的差不多:
scp 本地的文件路径 服务器用户名@服务器ip:要保存在服务器的哪个位置
如我要将本地根目录下的ok文件上传到1111这台服务器的/home/hellofriend目录下,则命令为:
scp /ok root@1111:/home/hellofriend/
执行命令后,输入密码,回车,正常情况下文件就上传成功了
-----
写在最后: 上面命令写的其实相对死板一些,其实还有一些小技巧,题主用的多了就能了解了,这里先不过多展开
=====
希望可以帮到题主, 欢迎追问
其实我做了一个类似的回答,可以去我的回答中看网站域名的流程及费用是多少?这个里面基本上有大部分介绍,我这里就上传做重点介绍。
首先连接的话,需要域名。国内的服务器域名备案,才能通过域名打开自己的网站,国外的不需要备案,但是延迟有点高。还有一点就是国外的服务器相对便宜,带宽也相当不错。
这里主要讲到上传,上传服务器分两种,一个是云服务器,一个是云虚拟主机,这两者是不同的。
一、云虚拟主机
这是网站专用的一种,仅仅只能通过服务商提供的上传方式上传,很多都是ftp,然后解压安装也只能通过服务商提供的方式,受限制比较多,但是环境都是已经部署好了,而且相对便宜。相当方便。
二、云服务器
这个就需要自己连上去,搭环境,但是功能多样性,可以自主选择功能,有些功能不一定在云虚拟主机里面有,比如301跳转,多个二级域名共用一个服务器,这个可以通过服务商提供的方式远程到服务器桌面,也可以通过远程桌面的方式连接上去,方法很多样。就像自己的电脑一样。
1、我们首先连接到linux服务器上,
2、我这里有很多的项目,就拿123这个文件夹做测试。
3、我要把这个文件夹压缩成1zip这个格式。
4、scp /1zip root@192168015:/etc/squid。
/ 当前的文件夹。
1zip 要上传的文件。
root 另一个服务器的用户名。
192168015 服务器ip(这个只是做测试用,真的服务器要修改真实的IP)。
/etc/squid 在服务器上要存放的目录。
5、做个真实的测试,输入服务器IP地址,回车以后提示输入密码。
6、输入密码以后你会看到传送的进度条。
7、登录到刚刚上传的那台服务器你会发上面有我们刚才上传的内容。
有两种方法上传程序到服务器里面。
如果是win系统服务器,那么打开远程桌面,从本地电脑复制文件,到远程桌面服务器里面,粘贴文件,就可以了。
如果有ip地址,ftp账号密码,也可以用 ftp软件上传。
linux服务器的话, 就是直接用ftp软件上传文件了。
有以下步骤:
1、把上传的文件打压缩包,利用发送邮箱附件的功能发到另一邮箱然后在服务器上登录邮箱下载。
2、把数据上传到百度网盘或者微云在服务器上面登录下载。
3、远程登录服务器时通过选项里面的本地磁盘映射功能,把本地磁盘映射到服务器上面,登录服务器并访问本地磁盘把数据复制到服务器磁盘即可。
4、在服务器上面搭建FTP,然后在本地电脑登录FTP上传数据。
电脑(Computer)是一种利用电子学原理根据一系列指令来对数据进行处理的机器。电脑可以分为两部分:软件系统和硬件系统。
第一台电脑是1946年2月15日在美国宾夕法尼亚大学诞生的ENIAC通用电子计算机。
有两种方法上传程序到服务器里面。
涉及到具体目录,就把ftp软件定位到那个目录中。
如果是win系统服务器,那么打开远程桌面,从本地电脑复制文件,到远程桌面服务器里面,粘贴文件,就可以了。
如果有ip地址,ftp账号密码,也可以用 ftp软件上传。
linux服务器的话, 就是直接用ftp软件上传文件了。
0条评论