国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java實現將文件上傳到ftp服務器的方法

2019-11-26 13:56:37
字體:
來源:轉載
供稿:網友

本文實例講述了java實現將文件上傳到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(); }}

將文件上傳ftp:

package 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); } }}

更多關于java相關內容感興趣的讀者可查看本站專題:《Java文件與目錄操作技巧匯總》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德兴市| 容城县| 彰化县| 虎林市| 吴堡县| 英山县| 类乌齐县| 徐水县| 吉安市| 抚州市| 汶上县| 南安市| 侯马市| 洛南县| 栖霞市| 高青县| 南江县| 龙泉市| 澄江县| 兴安盟| 罗定市| 望城县| 南华县| 富锦市| 哈密市| 云安县| 合山市| 施甸县| 西昌市| 台山市| 彭州市| 沾益县| 永州市| 和平县| 六安市| 辽宁省| 抚顺市| 鹤峰县| 长治市| 永新县| 霍邱县|