链接ftp,把文件或图片上传到ftp指定的文件夹中
/********************************************************************
*
*
* 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();
}
}
}
链接ftp,把文件或图片上传到ftp指定的文件夹中的更多相关文章
- 【应用】:shell crontab定时生成oracle表的数据到txt文件,并上传到ftp
一.本人环境描述 1.oracle服务端装在win7 32位上,oracle版本为10.2.0.1.0 2.Linux为centos6.5 32位,安装在Oracle VM Vir ...
- Jquery图片上传组件,支持多文件上传
Jquery图片上传组件,支持多文件上传http://www.jq22.com/jquery-info230jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消. ...
- Retrofit 2.0 超能实践(三),轻松实现文件/多图片上传/Json字符串
文:http://blog.csdn.net/sk719887916/article/details/51755427 Tamic 简书&csdn同步 通过前两篇姿势的入门 Retrofit ...
- 图片上传怎么用File接受文件
xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.——这才是真正的堪称强大!! - ...
- FileReader()读取文件、图片上传预览
前言 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据. 其中File对象可以是来自用户 ...
- aps.net mvc webapi 实现文件或图片上传
前几天看到网上有很多复杂的实现方式,觉得没必要,所以就写个简单的实现. 一:首先来看看Api Controller里面的代码: HttpContext.Current.Request.Files 这 ...
- (文件)图片上传,Spring或SpringMVC框架
spring或springMVC框架图片(文件)上传 页面部分,用一个简单的form表单提交文件,将图片或文件提交到服务端.一个输入框,用于输入图片的最终名称,一个file文件选择,用于选择图片. 页 ...
- ifram+form方式实现文件、图片上传、预览
1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 图片上传利用request.getInputStream()获取文件流时遇到的问题
图片上传功能是我们web里面经常用到的,获得的方式也有很多种,这里我用的是request.getInputStream()获取文件流的方式.想要获取文件流有两种方式,附上代码 int length = ...
随机推荐
- Linux软件包安装(rpm、yum、apt-get)
转载自:https://blog.csdn.net/wzq__janeGreen_/article/details/81774924 rpm/yum适用于Redhat.CentOS.Suse等平台: ...
- 每天一个linux命令(网络):【转载】ping命令
Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ...
- [TopCoder12141]SweetFruits
vjudge description 有\(n\)个水果,有一些水果是香的,它们各有一个香度值,剩下的水果是不香的. 现在你要把这\(n\)个水果连成一棵树,定义一个水果是真香的当且仅当它是香的且他与 ...
- test20181029 宝藏
题意 分析 考场做法 一眼看出是支持换根的树形dp. 用\(f(x,0/1)\)表示x及其子树中,从x出发,不一定/一定回到x的最大收益. 然后子树很好做. 换根的时候,我先计算后还原,需要考虑很多, ...
- java设计模式--七大原则
2016-05-14 20:45:38 设计模式到底是五大.六大还是七大,一直傻傻分不清楚,网上总是有说那些原则可以归为一个,我纠结了半天,突然发现自己是舍本逐末了,只要清楚这些原则的设计思想,其他的 ...
- bzoj1925(SCOI2010)地精部落
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1925 要怎样才能想出正解呢? 当然有一维表示从1到 i . 发现最后是递增的方案数=最后是递 ...
- PhpStorm 10.0.3 下载安装与汉化
https://www.7down.com/soft/229568.html 2JA97R55MG-eyJsaWNlbnNlSWQiOiIySkE5N1I1NU1HIiwibGljZW5zZWVOYW ...
- java对象模型
java对象模型其实就是JVM中对象的内存布局.一个对象本身内在结构的描述信息以字节码的方式存储在方法区中(参见java内存区域),说白了就是class文件.那么如何获取到对象的class信息呢?虚拟 ...
- 【linux】Linux系统信息查看命令大全
系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # ho ...
- beautifulsoup 基本语法
案例一: #coding=utf-8import jsonimport requestsfrom bs4 import BeautifulSoupurl = 'http://www.itest.inf ...