/********************************************************************

*
* Filename : .java
* Author : 
* Date : 2015年6月5日
* Version : V1.00
* Description :
*
* History : Modify Id | Date | Origin | Description
*******************************************************************/

package com.etCrm.utils.teamUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FtpUtils
{

public static FTPClient ftp = null;
/**
*
*
public static String url="";
/**
* FTP地址
*/
public static String ftpurl="";

/**
* FTP 端口
*/
public static String port="21";

/**
* FTP用户名
*/
public static String username="";

/***
* FTP密码
*/
public static String password="";

/**
* 文件路径
*/
public static String filepath="/home/web/teams/file/";

/**
* 图片上传
*/
public static String imgpath="/home/web/teams/img/";

public static String newpath="";
/**
*
* @Title: getdateyyymmdd
* @Description: 获取日期
* @return
* @return String 返回类型
* @author
* @since 1.0.0
*/
public static String getdateyyy() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date date=new Date();
return ""+sdf.format(date);
}

public static String getdateMMdd() {
SimpleDateFormat sdf = new SimpleDateFormat("MMdd");
Date date=new Date();
return ""+sdf.format(date);
}

public static String getdateHH() {
SimpleDateFormat sdf = new SimpleDateFormat("HH");
Date date=new Date();
return ""+sdf.format(date);
}

/**
* @Title: CreateDir
* @Description: TODO创建文件夹
* @param dirname
* @return void 返回类型
* @author
* @since 1.0.0
*/
/**
* 创建文件夹
* @param dir
* @param ftpClient
* @throws Exception
*/
/***
* @上传文件夹
* @param localDirectory
* 当地文件夹
* @param remoteDirectoryPath
* Ftp 服务器路径 以目录"/"结束
* */
//然后再利用ftpclient的makeDirectory方法创建文件夹
public static String createDir(String path){
try{
path=path+""+getdateyyy();
path=(path.substring(path.indexOf("teams")-1, path.length()));
ftp.makeDirectory(path);
path=path+"/"+getdateMMdd();
ftp.makeDirectory(path);
path=path+"/"+getdateHH();
ftp.makeDirectory(path);
System.out.println("在目标服务器上成功建立了文件夹: " + path);
return path;
}catch(Exception ex){
System.out.println(ex.getMessage());
}
return path;
}
/**
*
* @Title: uploadFile
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param path
* @param filename
* @param input
* @return
* @throws Exception
* @return boolean 返回类型
* @author 
* @since 1.0.0
*/
public static boolean uploadFile(String path,
String filename, InputStream input) throws Exception
{
boolean success = false;
ftp=new FTPClient();
try
{
int reply;
ftp.connect(ftpurl, Integer.valueOf(port));
// 登录FTP
ftp.login(username, password);
ftp.enterLocalActiveMode();
reply = ftp.getReplyCode();
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
System.out.println(reply);
if (!FTPReply.isPositiveCompletion(reply))
{
ftp.disconnect();
return success;
}
//图片文件夹
ftp.changeWorkingDirectory(path);
path= createDir(path);
// uploadDirectory();//创建文件夹
// path=path+""+newfile+"/";
newpath=path;
ftp.changeWorkingDirectory(path);
ftp.storeFile(filename, input);

input.close();
ftp.logout();
success = true;
}
catch (IOException e)
{
success = false;
throw e;
}
finally
{
if (ftp.isConnected())
{
try
{
ftp.disconnect();
}
catch (IOException e)
{
throw e;
}
}
}
return success;
}

/**
* 上传图片或者文件的方法
* @Title: uploadFtpFlie
* 上传图片或者文件的方法
* @param istype 0上传文件 1上传图片
* @param file
* @param fileName
* @return
* @return String 返回类型
* @author 
* @throws IOException
* @since 1.0.0
*/
public static String uploadFtpFlie(String istype,File file,String fileName) throws IOException
{
FileInputStream in =null;
boolean isbool=false;
try
{
in = new FileInputStream(file);
if(istype.equals("0"))
{
isbool=FtpUtils.uploadFile(filepath,fileName,in);
if(isbool)
{
System.out.println(url+newpath+"/" +fileName);
return url+newpath+"/" +fileName;
}
else
{
return "error";
}
}
else
{
isbool=FtpUtils.uploadFile(imgpath,fileName,in);
if(isbool)
{
System.out.println(url+newpath+"/" +fileName);
return url+newpath+"/" +fileName;
}
else
{
return "error";
}
}

}
catch (Exception e)
{
// TODO 自动生成 catch 块

e.printStackTrace();
return "error";
}
finally
{
in.close();
}

}

public static void main(String agrs[]) {
try {
File file = new File("D:\\000.jpg");

String k= uploadFtpFlie("1", file, "22222.JPG");
System.out.println(k);
} catch (Exception e) {
e.printStackTrace();
}
}
}

转载于:https://www.cnblogs.com/qingfengliaoren/p/4636220.html

链接ftp,把文件或图片上传到ftp指定的文件夹中相关推荐

  1. java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现ftp连接.登陆.上传.下载.删除文件.获取目录.文件列表等操作. 本地调试,首先需要在本机上开启ftp服务和ftp站点. 测试代码 ...

  2. 将图片上传到FTP服务器

    [FTP服务器] 介绍一个     ftp客户端工具:iis7服务器管理工具 IIs7服务器管理工具可以批量管理ftp站点,同时具备定时上传下载的功能. 作为服务器集成管理器,它最优秀的功能就是批量管 ...

  3. 通过分布式把本地图片上传到FTP(1)

    1.先打开Linix 打开终端 输入 [root@localhost 桌面]# cd -/ [root@localhost ~]# cd -/ [root@localhost /]# cd usr [ ...

  4. Swift中文件和图片上传处理

    前言:基于Alamofire4.5网络框架开发的Swift项目中上传文件和图片代码参考. 上传文件 extension HttpRequestService {typealias UploadDone ...

  5. themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...

    实现文件上传和回显 1.新建一个SpringBoot项目,选择 Spring Web 和 thymeleaf 依赖 .pow.xml文件下的依赖如下 2.根据下图,创建如下文件 3.直接上代码 配置文 ...

  6. react简易实现图片上传组件-从相机或文件夹上传

    简单做了个图片上传的组件: <div className={styles.uploadImg_main}><inputstyle={{display:'none'}}ref={(el ...

  7. nodeJs中间件Multer详解_使用express实现本地文件/图片上传到服务器指定目录

    最终实现的效果,更改Input的值后,将图片显示出来.输入描述信息,提交后,图片上传到后台对应的路径下. Multer Multer 是一个node.js中间件,用于处理 multipart/form ...

  8. Asp.Net Core文件或图片上传

    管理后台上传的图片或文件可能也需要在 Api 项目能够访问,考虑到文件的统一管理,后台的文件默认 是上传到 Api 项目里的. Web 项目里的配置文件 appsetting.json 中的 ApiS ...

  9. java muti实现图片上传_使用MultipartFile实现文件上传

    项目中会经常实现文件上传功能,比如在前台页面中设置上传文件按钮,后台保存文件至服务器,操作完成后前台展示上传结果,如上传成功或者上传失败信息.使用MultipartFile可以很容易的实现文件上传功能 ...

最新文章

  1. 如何设置网页自动刷新(JSP,JS,HTML)
  2. PowerBI随笔(6)-filter、caculate、RELATED相关
  3. java写龟兔赛跑_简单的实现java多线程——龟兔赛跑
  4. Start here: portal to the lectures
  5. JBoss的简单配置
  6. 收银系统 mysql数据库_某大型超市收银系统数据库成功恢复
  7. 组合框绑定字符串数组的数据 c# 1614236088
  8. 全面解析Java的垃圾回收机制(转)
  9. es文件浏览器怎么用_谷歌出品的文件管理APP,比ES文件浏览器更简约
  10. Android 实现 相机、相册功能 + 图片存取数据库操作
  11. 使用 Laravel 5.5+ 更好的来实现 404 响应
  12. java中Excel转图片实现
  13. 大数据之spark_spark SQL的建表语句
  14. 单片机控制的双路有源滤波器设计
  15. Godot GUI探讨
  16. 图像区块分割与采样YUV4:2:0
  17. 2019 Multi-University Training Contest 6 1005 Snowy Smile —— 线段树
  18. 基于element-ui实现待支付订单显示定时器
  19. 批量生成独一无二的NFT猫猫图,这项目王多鱼会投吗?
  20. Tomcat 提示 -Djava.endorsed.dirs=/Users/admin/apache-tomcat-9.0.13/endorsed is not supported. Endorsed

热门文章

  1. 用php做盒子模型,什么是CSS盒子模型?一文带你了解CSS盒子模型
  2. python 字符串中符号的意义
  3. linux 判断上一条命令是否指令成功
  4. SQL Server 数据库原理与应用
  5. asp.net性能优化之使用Redis缓存(入门)
  6. 安卓项目中的R.java文件丢失如何解决
  7. Windows Azure 革新 – TFS集成(WAWS第2部分)
  8. 全数字伺服系统中位置环和电子齿轮的设计
  9. 一句话解决两天没解决的网络问题
  10. 【调试手段】linux下valgrind内存泄露检查