import ch.qos.logback.classic.Logger;
import org.apache.commons.net.ftp.*;
import org.slf4j.LoggerFactory; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List; public class uploadutil {
public final static Logger logger= (Logger) LoggerFactory.getLogger(uploadutil.class);
private static String ftpip=propertiesutil.getValue("ftp.server.ip");
private static String ftpuser=propertiesutil.getValue("ftp.user");
private static String ftppass=propertiesutil.getValue("ftp.password"); private int port;
private String ip;
private String user;
private String pass;
private FTPClient ftpClient; public uploadutil(int port, String ip, String user, String pass) {
this.port = port;
this.ip = ip;
this.user = user;
this.pass = pass;
} public String getUser() {
return user;
} public void setUser(String user) {
this.user = user;
} public int getPort() {
return port;
} public void setPort(int port) {
this.port = port;
} public String getIp() {
return ip;
} public void setIp(String ip) {
this.ip = ip;
} public FTPClient getFtpClient() {
return ftpClient;
} public void setFtpClient(FTPClient ftpClient) {
this.ftpClient = ftpClient;
} public String getPass() {
return pass;
} public void setPass(String pass) {
this.pass = pass;
}
public static boolean uploadok(List<File> filelist) throws IOException {
uploadutil u=new uploadutil(14147,ftpip,ftpuser,ftppass);
logger.info("start upload");
boolean result=u.uploads("work",filelist);
logger.info("end upload");
return result;
}
private boolean uploads(String remotepath,List<File> listfile) throws IOException {
boolean upload=true;
FileInputStream f=null;
if(connectserver(this.getPort(),this.getIp(),this.getUser(),this.pass)){
try {
ftpClient.changeWorkingDirectory(remotepath);
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("utf-8");
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.enterLocalPassiveMode();
for(File file:listfile){
f=new FileInputStream(file);
ftpClient.storeFile(file.getName(),f);
}
} catch (IOException e) {
logger.error("文件上传异常",e);
upload=false;
e.printStackTrace();
}finally {
f.close();
ftpClient.disconnect();
} }
return upload;
}
private boolean connectserver(int port, String ip, String user, String pass){
ftpClient=new FTPClient();
boolean isok=false;
try {
ftpClient.connect(ip);
isok=ftpClient.login(user,pass);
} catch (IOException e) {
logger.error("链接服务器异常",e);
}
return isok;
} }

  

使用FTPClient实现文件上传服务器的更多相关文章

  1. Java FtpClient 实现文件上传服务

    一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...

  2. HTTP文件上传服务器-支持超大文件HTTP断点续传的实现办法

    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传.笔者在以前的博客如何实现支持大文件的高性能HTTP文件上传服务器已经介绍了实现大文件上传的一些基本 ...

  3. scp -本地文件上传服务器,指定端口

    scp 命令可以将本地文件上传服务器,或者将服务器上的文件下载到本地, 1.  上传服务器: scp [本地文件目录]  [服务器用户名]@[服务器名]:/[服务器上文件路径] 比如 scp /Doc ...

  4. JAVA中使用FTPClient实现文件上传下载实例代码

    一.上传文件 原理就不介绍了,大家直接看代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  5. Java FTPClient实现文件上传下载

    在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...

  6. JAVA中使用FTPClient实现文件上传下载

    在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...

  7. QT TCP文件上传服务器

    利用QT做为client端,纯C语言做为server端,利用tcp协议,实现client端向server端传递文件 Linux服务器端 //头文件 #include <stdio.h> # ...

  8. post提交/文件上传服务器修改

    第一步:修改在php5下POST文件大小的限制   1.编修php.ini   找到:max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,修改为: max_exec ...

  9. andorid人员文件上传服务器的搭建(tomcat中)

    1.将.war文件复制到tomcat服务器webapps下,启动服务器即可 2.访问工程路径http://localhost:8080/FileUpload/index.jsp即可测试上传 3.测试成 ...

随机推荐

  1. 爬虫 fake_useragent

    import requests from fake_useragent import UserAgent ua = UserAgent() headers = { "UserAgent&qu ...

  2. https://www.cnblogs.com/limanjihe/p/10184327.html

    https://www.cnblogs.com/limanjihe/p/10184327.html https://blog.csdn.net/xnnswmzdszyd/article/details ...

  3. 用php写爬虫去爬数据

    参考文档1 参考文档2 这里是我自己写的一个小需求 <?php /** 采集http://www.959.cn/school,即时更新的最新的文章内容:每分钟采集一次.采集结束后实时入库并展示. ...

  4. 6. 使用cadvisor监控docker容器

    Prometheus监控docker容器运行状态,我们用到cadvisor服务,cadvisor我们这里也采用docker方式直接运行.这里我们可以服务端和客户端都使用cadvisor 客户端 1.下 ...

  5. Process Hacker源码中的用户态hook的做法

    processhacker-code-5632\1.x\trunk\NProcessHacker\hook.h typedef struct _PH_HOOK { PVOID Function; PV ...

  6. MySQL的安装配置(无坑

    简单记录一下自己掉坑无数之后,终于找到的一个不坑的方法. 一.安装 #进入一个习惯的文件夹 cd /usr/local/src #下载资源包 wget -i -c http://dev.mysql.c ...

  7. es7 async 前置依赖

    https://stackoverflow.com/questions/33527653/babel-6-regeneratorruntime-is-not-defined 移动端 px2rem-lo ...

  8. Ansible 和 Playbook 暂存

    Ansible  和  Playbook 暂存 , 也是一个批量管理工具 自动化的批量管理工具 主机清单  HOST Inventory 模块插件  Playbooks 查看ansible的目录结构 ...

  9. pair queue____多源图广搜

    .简介 class pair ,中文译为对组,可以将两个值视为一个单元.对于map和multimap,就是用pairs来管理value/key的成对元素.任何函数需要回传两个值,也需要pair. 该函 ...

  10. QList和QVector等容器的区别:(转)

    源地址:https://blog.csdn.net/qq_33266987/article/details/53333373 Qlist.QVector 与 list.vector似乎不太类似: li ...