<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了java實現上傳檔案到FTP的具體程式碼,供大家參考,具體內容如下
需求說明:將指定檔案上傳到FTP,上傳成功後修改檔名。
獲取檔名及路徑(這裡是從資料庫獲取,所以前面的程式碼就不CV了)
/** * 測試上傳 * @param map 從資料庫獲取到的檔案資訊 (包含檔案路徑FILE_PATH 檔案型別FILE_TYPE等資訊) */ public void testUpdFtpFile(Map<String,Object> map){ /*上傳附件到FTP*/ FileInputStream inputStream = null; try { //找到要上傳的檔案 String originfilename = "E:\work\files\"+map.get("FILE_PATH").toString(); //轉成流 inputStream = new FileInputStream(originfilename); //上傳後的檔名+檔案型別 String ftpName = "上傳到FTP後的檔名."+map.get("FILE_TYPE"); boolean updFtpFile = FtpClientFile.uploadFile(ftpName,inputStream); if(updFtpFile){ //列印下紀錄檔 System.out.println(("=======檔案已上傳到FTP========")); } } catch (Exception e) { throw new BusinessException("附件上傳失敗!"); } }
FtpClientFile工具類方法
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; import com.google.gson.JsonArray; /** * ftp 上傳檔案 * FTPClient commons.net 3.0.1版本 * @author Lenovo * */ public class FtpClientFile { private static final String hostname = "10.xx.xx.xx" ;//FTP IP private static final int port = 21;//FTP 埠號 private static final String username = "ftpName";//FTP 登入賬號 private static final String password = "ftpPsd"; //FTP 登入密碼 private static final String pathname = "/";//FTP 工作路徑 /** * 上傳檔案(可供Action/Controller層使用) * @param fileName 上傳到FTP伺服器後的檔名稱 * @param inputStream 輸入檔案流 * @return */ public static boolean uploadFile(String fileName,FileInputStream inputStream){ boolean flag = false; FTPClient ftpClient = new FTPClient(); //設定超時 ftpClient.setConnectTimeout(60*60*1000); //設定編碼 ftpClient.setControlEncoding("UTF-8"); try { //連線FTP伺服器 ftpClient.connect(hostname, port); //登入FTP伺服器 ftpClient.login(username, password); //是否成功登入FTP伺服器 int replyCode = ftpClient.getReplyCode(); if(!FTPReply.isPositiveCompletion(replyCode)){ return flag; } System.out.println("===========登入FTP成功了=========="); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); //切換路徑 建立路徑 ftpClient.makeDirectory(pathname); ftpClient.changeWorkingDirectory(pathname); ftpClient.enterLocalPassiveMode(); //設定緩衝 ftpClient.setBufferSize(1024 * 1024 * 20); //保持連線 ftpClient.setKeepAlive(true); boolean a = ftpClient.storeFile(new String(fileName.getBytes("utf-8"),"iso-8859-1"), inputStream); if(a){ System.out.println("===========建立檔案成功=============="+a); String fileName2 = fileName+"AAA"; boolean status = ftpClient.rename(fileName, fileName2); if(status) System.out.println("===========修改檔名稱成功=============="+status); } inputStream.close(); ftpClient.logout(); flag = true; } catch (Exception e) { e.printStackTrace(); } finally{ if(ftpClient.isConnected()){ try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } return flag; } /* public static void main(String[] args) { String originfilename = "C:\Users\Lenovo\Desktop\xx.txt"; FileInputStream inputStream; try { inputStream = new FileInputStream(new File(originfilename)); boolean a = uploadFile("xx.txt","/104/",inputStream); System.out.println("上傳檔案成功============"+a); } catch (FileNotFoundException e) { e.printStackTrace(); } }*/ }
上傳檔案到FTP時 注意:是否有許可權登入伺服器/上傳檔案等操作。
預設在瀏覽器輸入自己的ftp地址存取下看看 ftp://10.xx.xx.xx:埠號 登入看看
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45