Java实现文件上传到服务器(FTP方式)

1,jar包:commons-net-3.3.jar

2,实现代码:

    //FTP传输到数据库服务器
private boolean uploadServerByFtps(){
boolean flag = true;
//获取客户端数据文件路径
String client_path = Pub.getPropertiesValue("analysis", "analysis.client.data.path");
//获取数据库服务器上的存放数据文件路径
String server_path = Pub.getPropertiesValue("analysis", "analysis.server.data.path"); String hostname = Pub.getPropertiesValue("analysis", "ftp.hostname");
String ftpusername = Pub.getPropertiesValue("analysis", "ftp.username");
String ftppwd = Pub.getPropertiesValue("analysis", "ftp.pwd");
int port = 21;
logger.info("ftp server infor:hostname:"+hostname+" ftpusername:"+ftpusername+" ftppwd:"+ftppwd+" port:"+port); //遍历客户端数据文件路径下的txt文件,然后采用FTP上传
File client_dir = new File(client_path);
if(!client_dir.exists()){
logger.info("The file directory on the host you want to read does not exist");
return flag;
}
File client_files[] = client_dir.listFiles();
if(client_files.length == 0){
logger.info("You want to read the file directory without any files");
return flag;
}
//开始遍历文件
//创建ftp客户端
FTPClient ftpClient = new FTPClient();
ftpClient.setControlEncoding("GBK");
for(int i=0;i<client_files.length;i++){
String getfileName = client_files[i].getName();
String getfileNamePath = client_files[i].getPath();
//只对txt文件做处理
if((getfileName.substring(getfileName.lastIndexOf(".")).trim().equals(".txt"))){
//todo:增加控制文件(已经传输过的文件)的传输 try {
//链接ftp服务器
ftpClient.connect(hostname, port);
//登录ftp
ftpClient.login(ftpusername, ftppwd);
int reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
logger.info("Returns a 530 password username error or the current user does not have permission to close the FTP connection");
return false;
}
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// ftpClient.makeDirectory("path");//在root目录下创建文件夹
String server_file_name = server_path+ getfileName;
logger.info("server_file_name>>>>>>: " + server_file_name);
logger.info("getfileNamePath>>>>>>: " + getfileNamePath); //读取源文件流(客户端文件)
InputStream client_fileInput = new FileInputStream(getfileNamePath);
//传送到服务端
ftpClient.storeFile(server_file_name, client_fileInput);//文件你若是不指定就会上传到root目录下
client_fileInput.close();
ftpClient.logout();
logger.info("ftp is success");
} catch (SocketException e) {
// TODO Auto-generated catch block
logger.info("port problem: "+e.toString());
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
logger.info("IO problem: "+e.toString());
e.printStackTrace();
} catch (Exception e) {
logger.info("ftp problem: "+e.toString());
e.printStackTrace();
}finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException ioe) {
ioe.printStackTrace();
logger.info("IO problem: "+ioe.toString());
}
} }
}
} return flag;
}

Java实现文件上传到服务器(FTP方式)的更多相关文章

  1. H5+JAVA的文件上传,断点续传

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  2. Java Web文件上传

    参考资料:http://www.cnblogs.com/xdp-gacl/p/4200090.html 一.问题描述 Java Web文件上传需要借助一些第三方库,常用的是借助Apache的包,有两个 ...

  3. CentOS下安装配置NFS并通过Java进行文件上传下载

    1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...

  4. java 大文件上传 断点续传 完整版实例 (Socket、IO流)

    ava两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操 ...

  5. java的文件上传和下载 抄袭别人的.在底部有说明.

    =======后续 这里采用的是输出流的方式,我电脑装的是windows系统,测试没有问题,但是当把项目放到Linux系统上跑时,就会出现保存位置错误的情况, 指定的路径就会被当做文件名的一部分保存了 ...

  6. java大文件上传解决方案

    最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

  7. Java超大文件上传解决办法

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  8. java进行文件上传,带进度条

    网上看到别人发过的一个java上传的代码,自己写了个完整的,附带源码 项目环境:jkd7.tomcat7. jar包:commons-fileupload-1.2.1.jar.commons-io-1 ...

  9. java实现文件上传下载

    喜欢的朋友可以关注下,粉丝也缺. 今天发现已经有很久没有给大家分享一篇技术文章了,于是想了一下给大家分享一篇java实现文件上传下载功能的文章,不喜欢的希望大家勿喷. 想必大家都知道文件的上传前端页面 ...

随机推荐

  1. php 数据库练习之租房子

    题目: 示例图 本次只做图4这个表,因为之前的都已做过 自己在mydb数据库建了一个house表 如图: 自己做的代码: <!DOCTYPE html PUBLIC "-//W3C// ...

  2. OpenStack Cinder 与各种后端存储技术的集成叙述与实践

    先说下下loop设备 loop设备及losetup命令介绍 1. loop设备介绍 在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备.它能使我们 ...

  3. mysql load data导入脚本

    # !/bin/bash ############中文说明###################### #本程序的一些提示需要中文支持,如系统没有安装中文包,请先安装:yum -y groupinst ...

  4. java利用poi 把ppt转化为图片,

    导入jar包: poi-3.8.jar poi-ooxml-3.9.jar poi-scratchpad-3.8.jar 代码: package test4; import java.awt.Dime ...

  5. vue.js实现初了解(一)

    1. vue 2.0是用Flow做静态类型检查, 3.0对TypeScript的支持更好了: 2. vue.js是基于Rollup(更轻量,适合js库的构建)构建的,它的构建相关配置都在scripts ...

  6. 使用jquery的$.post()时浏览器崩溃

    代码: function verifyStepOne() { var phoneNumber = $("#phoneNumber"); var username = $(" ...

  7. 用virtualenv建立多个Python独立开发环境(转)

    add by zhj: 在virtualenv环境下,安装第三方包时,不要用sudo pip install xxx,要直接用pip install xxx,如果用sudo时,那会安装在原来的系统Py ...

  8. Docker+Jenkins_自动化持续集成环境搭建

    前一篇文章里已经在内网环境搭建好docker 详见:https://www.cnblogs.com/befer/p/9107503.html, 现在接着搭建一个Docker+Jenkins的集成环境 ...

  9. Elasticsearch环境安装配置

    安装Elasticsearch的步骤如下 - 第1步 - 查看安装在计算机上的java的最低版本,它要求java 7或以上或最新的版本.可以通过执行以下操作进行检查 - 在Windows操作系统(OS ...

  10. PhotoSwipe中文API(一)

    入门 您应知道之前先做起事情: 1. PhotoSwipe不是一个简单的jQuery插件,至少基本的JavaScript知识才能安装. 2. PhotoSwipe需要预定义的图像尺寸(更多关于这一点) ...