首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

将文件下传ftp服务器

2012-09-12 
将文件上传ftp服务器//工具类package com.fz.common.utilimport java.io.DataInputStreamimport java.io

将文件上传ftp服务器

//工具类package com.fz.common.util;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPReply;public class FileUtil {  /**  *   * @date Sep 26, 2011 10:17:39 AM   * @return  * @author zhangh  */ public static DataInputStream getInput(){  DataInputStream d = null;  try {   d = new DataInputStream(new FileInputStream("c:/wmc.dat"));   return d;  } catch (FileNotFoundException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }  return d; } /**  *   * @date Sep 26, 2011 10:17:44 AM   * @param whites  * @return  * @author zhangh  */ public static boolean creatWhiteManageFile(byte[] whites,String file) {  DataOutputStream d;  try {   d = new DataOutputStream(new FileOutputStream(file));   d.write(whites);   d.flush();  } catch (Exception e) {   // TODO Auto-generated catch block   return false;//   e.printStackTrace();  }  return true; } /**  *   * @date Sep 16, 2011 4:39:22 PM   * @param url  * @param username  * @param password  * @param path  * @param filename  * @param input  * @return  * @author zhangh  */ public static boolean uploadFile(String url,  String username,   String password, String path, String filename, InputStream input) {  boolean success = false;  FTPClient ftp = new FTPClient();  try {   int reply;   ftp.connect(url);//   ftp.connect(url, port);// 连接FTP服务器   // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器   ftp.login(username, password);// 登录   reply = ftp.getReplyCode();   if (!FTPReply.isPositiveCompletion(reply)) {    ftp.disconnect();    return success;   }   ftp.changeWorkingDirectory(path);   ftp.storeFile(filename, input);   ftp.logout();   input.close();   success = true;  } catch (IOException e) {   e.printStackTrace();  } finally {   if (ftp.isConnected()) {    try {     ftp.disconnect();    } catch (IOException ioe) {    }   }  }  return success; }  /**  *   * 方法名称:uploadFileFtp  * 方法描述:黑名名单,黑用户文件上传ftp服务器  * @param url  * @param username  * @param password  * @param path  * @param filename  * @param input  * @param input2  * @return  * boolean  * version 1.0   * author  wuxq  * Oct 26, 2011 3:19:09 PM  */ public static boolean uploadFileFtp(String url, String username,   String password, String path, String filename, InputStream input,   InputStream input2) {  Date date = new Date();  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  String time = formatter.format(date);  boolean success = false;  FTPClient ftp = new FTPClient();  try {   int reply;   ftp.connect(url);   ftp.login(username, password);// 登录   reply = ftp.getReplyCode();   if (!FTPReply.isPositiveCompletion(reply)) {    ftp.disconnect();    return success;   }   ftp.changeWorkingDirectory(path);   ftp.storeFile(filename, input);   ftp.storeFile(filename + time, input2);   ftp.logout();   input.close();   success = true;  } catch (IOException e) {   e.printStackTrace();  } finally {   if (ftp.isConnected()) {    try {     ftp.disconnect();    } catch (IOException ioe) {    }   }  }  return success; }}

?

//读取配置文件package com.fz.fzbike.domain;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import org.apache.log4j.Logger;import com.eNets.framework.util.SysConstants;/** * 获取ftp服务器信息的bean类 *  * @author wuxq *  */public class SysConstats { private static Logger log = Logger.getLogger(SysConstats.class); public static String FTPSERVER;// ftp服务器ip地址 public static String FTPUSERNAME;// ftp服务器用户名 public static String FTPPASSWORD;// ftp服务器用户密码 public static String ENVELOPERESULTROOT;// 存放ftp服务器的路径 public SysConstats() {  try {   InputStream in = new BufferedInputStream(new FileInputStream(     SysConstants.PUBLIC_PATH.substring(0,       SysConstants.PUBLIC_PATH.length() - 7)       + "/bidfileconfig.properties"));   Properties prop = new Properties();   prop.load(in);   SysConstats.FTPSERVER = prop.getProperty("ftpServer", "none");   SysConstats.FTPUSERNAME = prop.getProperty("ftpUserName", "none");   SysConstats.FTPPASSWORD = prop.getProperty("ftpPassword", "none");   SysConstats.ENVELOPERESULTROOT = prop.getProperty(     "envelopeResultRoot", "none");   log.debug("读取ftp配置信息成功!");  } catch (IOException e) {   log.debug("读取ftp配置信息失败!");   e.printStackTrace();  } } public static String getFTPSERVER() {  return FTPSERVER; } public static void setFTPSERVER(String ftpserver) {  FTPSERVER = ftpserver; } public static String getFTPUSERNAME() {  return FTPUSERNAME; } public static void setFTPUSERNAME(String ftpusername) {  FTPUSERNAME = ftpusername; } public static String getFTPPASSWORD() {  return FTPPASSWORD; } public static void setFTPPASSWORD(String ftppassword) {  FTPPASSWORD = ftppassword; } public static String getENVELOPERESULTROOT() {  return ENVELOPERESULTROOT; } public static void setENVELOPERESULTROOT(String enveloperesultroot) {  ENVELOPERESULTROOT = enveloperesultroot; } public static void main(String args[]) {  new SysConstats(); }}

?

//将文件上传ftppackage com.fz.fzbike.biz;import java.io.BufferedInputStream;import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.text.DecimalFormat;import com.eNets.basesys.user.vo.UserVO;import com.eNets.framework.assemble.RequestHashNew;import com.eNets.framework.database.DBConnection;import com.fz.common.util.FileUtil;import com.fz.fzbike.common.StringUtil;import com.fz.fzbike.domain.SysConstats;/** * 上传卡内码到ftp服务器 生成bat文件 *  * @author wuxq 2011-09-28 */public class UploadCardInNoFtpAction { /**  *   * 方法名称:uploadFtp 方法描述:上传文件到ftp  *   * @param reh  *            void version 1.0 author wuxq Sep 28, 2011 10:38:38 AM  */ public void uploadFtp(RequestHashNew reh) {  String cardType = reh.get("cardType").toString();  DBConnection dbc = reh.getDBC();// 链接数据库  dbc.endTran();  // 判断是否是空值 空有可能是挂失,退出挂失, 退出黑名单, 根据卡id得到卡类型  if (StringUtil.isNull(cardType)) {   String cardtypesql = "select ci.card_type from lc_t_card_info ci where ci.card_id="     + reh.get("SELECTEDID");   cardType = dbc.getList0(cardtypesql);  }  String top = "c:/upload/";  String file = top + "bmc.dat"; // 定义一个目录存放临时的黑名单bat文件  String whiteFile = top + "wmc.dat";// 定义一个目录存放临时的白名单bat文件  String buserfile = top + "buser.dat"; // 定义一个目录存放临时的黑用户文件  String fileID = dbc.setOracleGlideValue("LC_T_UPGRADE_FILE");// 得到文件表的序列号  // 得到当前用户的ID  UserVO userVo = reh.getUserVO();  String UserID = userVo.getUserID();  DecimalFormat df = new DecimalFormat("0.0");  if (cardType.equals("7")) {   StringBuffer bf = new StringBuffer(1024);   bf     .append(       "select distinct card_in_no from(select tc.card_in_no")     .append(       " from lc_t_blacklist tb left join lc_t_card_info tc")     .append(       " on tb.card_id = tc.card_id where tc.card_type = 7")     .append(" and tb.whether_effective = 1 union all select")     .append(" tc.card_in_no from lc_t_card_loss cl left join")     .append(       " lc_t_card_info tc on cl.card_id=tc.card_id where tc.card_type = 7 and")     .append(" cl.whether_effective=1) t order by t.card_in_no");// 黑名单及挂失记录表中所有的管理员记录   StringBuffer bffer = new StringBuffer(1024);   bffer     .append("select ti.card_in_no from lc_t_card_info ti")     .append(       " where ti.card_type=7 and ti.card_make_status=2 order by ti.card_in_no");// 卡信息表中所有的管理员记录   // 定义一个数组来接收黑名单中排序好的管理员卡内码   String arr[][] = dbc.getArr(bf.toString());   // 定义一个数组来接收卡信息表中排序好的管理员卡内码   String listarr[][] = dbc.getArr(bffer.toString());   upload_f(arr, file);   // 得到黑名单bat文件的版本号, 初始值为1.0   String vesionSql = "select file_vesion from(select row_number() over(ORDER BY t.file_vesion DESC) num,"     + "t.file_vesion from lc_t_upgrade_file t where t.file_type=2) where num=1";   String vesion = dbc.getList0(vesionSql);   double ve = 1.0;// 定义黑名单版本编号变量,初始值为1.0   /*    * 数据库中存在旧版本则在版本增加0.1    */   if (StringUtil.isNotNull(vesion)) {    ve = (Double.parseDouble(vesion) + 0.1);   }   vesion = df.format(ve);   // 版本记录sql语句   String bmcsql = "insert into lc_t_upgrade_file values(" + fileID     + ",'" + file + "','" + vesion + "','2',sysdate," + UserID     + ")";   dbc.insertDB(bmcsql);// 持久化到数据库   upload_f(listarr, whiteFile);   // 得到白名单bat文件的版本号, 初始值为1.0   String vesionSql2 = "select file_vesion from(select row_number() over(ORDER BY t.file_vesion DESC) num,"     + "t.file_vesion from lc_t_upgrade_file t where t.file_type=5) where num=1";   String vesion2 = dbc.getList0(vesionSql2);   double ve2 = 1.0;// 定义白名单版本编号变量,初始值为1.0   /*    * 数据库中存在旧版本则在版本增加0.1    */   if (StringUtil.isNotNull(vesion2)) {    ve2 = (Double.parseDouble(vesion2) + 0.1);   }   String bfileID = dbc.setOracleGlideValue("LC_T_UPGRADE_FILE");// 得到文件表的序列号   vesion2 = df.format(ve2);   // 版本记录sql语句   String bmcsql2 = "insert into lc_t_upgrade_file values(" + bfileID     + ",'" + whiteFile + "','" + vesion2 + "','5',sysdate,"     + UserID + ")";   dbc.insertDB(bmcsql2);// 持久化到数据库  } else {   StringBuffer bf2 = new StringBuffer(1024);   bf2     .append(       "select distinct card_in_no from (select tc.card_in_no")     .append(       " from lc_t_blacklist tb left join lc_t_card_info tc")     .append(       " on tb.card_id = tc.card_id where tc.card_type <> 7")     .append(" and tb.whether_effective = 1 union all select")     .append(" tc.card_in_no from lc_t_card_loss cl left join")     .append(" lc_t_card_info tc on cl.card_id = tc.card_id")     .append(" where tc.card_type <> 7 and cl.whether_effective")     .append(" = 1) t order by t.card_in_no");// 黑名单表及挂失用户表中所有非管理员记录   // 定义一个数组来接收黑用户中排序好的用户卡内码   String arr2[][] = dbc.getArr(bf2.toString());   upload_f(arr2, buserfile);   // 得到黑用户bat文件的版本号, 初始值为1.0   String huserSql = "select file_vesion from(select row_number() over(ORDER BY t.file_vesion DESC) num,"     + "t.file_vesion from lc_t_upgrade_file t where t.file_type=4) where num=1";   String vesion3 = dbc.getList0(huserSql);   double ves = 1.0;// 定义黑用户版本编号变量,初始值为1.0   /*    * 数据库中存在旧版本则在版本增加0.1    */   if (StringUtil.isNotNull(vesion3)) {    ves = (Double.parseDouble(vesion3) + 0.1);   }   vesion3 = df.format(ves);   // 版本记录sql语句   String husersql = "insert into lc_t_upgrade_file values(" + fileID     + ",'" + buserfile + "','" + vesion3 + "','4',sysdate,"     + UserID + ")";   dbc.insertDB(husersql);// 持久化到数据库  } } /**  *   * 方法名称:writeLong 方法描述:向输出流中写长整型  *   * @param input  * @return byte[] version 1.0 author wuxq Sep 28, 2011 10:54:58 AM  */ public static byte[] writeLong(long input) {  ByteArrayOutputStream baos = new ByteArrayOutputStream();  DataOutputStream os = new DataOutputStream(baos);  try {   os.writeLong(Long.reverseBytes(input));  } catch (IOException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }  byte[] b = baos.toByteArray();  return b; } /**  *   * 方法名称:upload_f 方法描述:把文件上传到ftp服务器  *   * @param arr  * @param file  *            void version 1.0 author wuxq Oct 8, 2011 11:37:27 AM  */ public static void upload_f(String[][] arr, String file) {  byte by[] = null;  byte[] result = new byte[1];  if (StringUtil.isNotNull(arr)) {   result = new byte[arr.length * 4];   int position = 0;   for (int i = 0; i < arr.length; i++) {    by = writeLong(Long.parseLong(arr[i][0]));    byte list[] = new byte[4];    for (int h = 0; h < list.length; h++) {     list[h] = by[h];    }    for (int g = position; g < position + 4; g++) {     result[g] = list[g - 4 * i];    }    position = position + 4;   }  }  boolean bool = FileUtil.creatWhiteManageFile(result, file);// 创建一个bat文件  if (bool) {   // InputStreamReader isr = new InputStreamReader(new   // FileInputStream(file));   InputStream inp = null;   InputStream inp2 = null;   try {    inp = new BufferedInputStream(new FileInputStream(file));    inp2 = new BufferedInputStream(new FileInputStream(file));   } catch (FileNotFoundException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }   // 截取文件名   String f = file.substring(10, file.length());   // 获取ftp配置信息   SysConstats sc = new SysConstats();   FileUtil.uploadFileFtp(sc.FTPSERVER, sc.FTPUSERNAME,     sc.FTPPASSWORD, sc.ENVELOPERESULTROOT, f, inp, inp2);  } }}

?

热点排行