激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java使用FTP上傳文件并模擬接受的方法

Java使用FTP上傳文件并模擬接受的方法

2021-08-08 11:39學習使得吾快樂 Java教程

這篇文章主要介紹了Java使用FTP上傳文件并模擬接受的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

0. 導入相關依賴

  1. <!-- FTP -->
  2. <dependency>
  3. <groupId>commons-net</groupId>
  4. <artifactId>commons-net</artifactId>
  5. <version>3.6</version>
  6. </dependency>
  7. <!-- Hutool:一個小而全的Java工具類庫,具體介紹參照附錄1 -->
  8. <dependency>
  9. <groupId>cn.hutool</groupId>
  10. <artifactId>hutool-all</artifactId>
  11. <version>5.3.7</version>
  12. </dependency>
  13. <!-- lombok:通過簡單的注解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 Java 代碼的工具,需要為idea添加插件,添加方法參照附錄2 -->
  14. <dependency>
  15. <groupId>org.projectlombok</groupId>
  16. <artifactId>lombok</artifactId>
  17. <version>1.18.16</version>
  18. </dependency>

1. 文件上傳代碼

  1. @Component
  2. @Slf4j
  3. public class FTPTools {
  4.  
  5. /**
  6. * 文件上傳
  7. * @param hostname 域名地址
  8. * @param port 端口號
  9. * @param username 用戶名
  10. * @param password 密碼
  11. * @param fileInfo 待上傳的文件
  12. * @param uploadPath 待上傳到的路徑
  13. * @param saveName 預保存的文件名
  14. * @return
  15. */
  16. public static boolean upload(String hostname,int port,String username,String password,String fileInfo,String uploadPath,String saveName){
  17. boolean flag = false;
  18.  
  19. FTPClient ftpClient = null;
  20. try {
  21. ftpClient = new FTPClient();
  22. ftpClient.connect(hostname,port);
  23. //每次數據連接之前,ftp client告訴ftp server開通一個端口來傳輸數據
  24. ftpClient.enterLocalPassiveMode();
  25. //設置二進制傳輸
  26. ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
  27. ftpClient.setControlEncoding("UTF-8");
  28. if(ftpClient.login(username,password)){//若連接成功
  29. log.info("成功登錄到ftp服務端,開始文件上傳");
  30. flag = sendFile(ftpClient,fileInfo,uploadPath,saveName);
  31. }else{
  32. log.error("登錄到ftp服務端失敗,請檢查用戶名和密碼");
  33. }
  34. disconnect(ftpClient);
  35. }catch (SocketException e) {
  36. log.error("文件{}上傳失敗:{}",saveName,e.getMessage());
  37. } catch (IOException e) {
  38. log.error("文件{}上傳失敗:{}",saveName,e.getMessage());
  39. } finally {
  40.  
  41. }
  42. return flag;
  43. }
  44.  
  45. /**
  46. * 文件傳輸
  47. * @param fileInfo
  48. * @param uploadPath
  49. * @param saveName
  50. * @return
  51. */
  52. private static boolean sendFile(FTPClient ftpClient, String fileInfo, String uploadPath, String saveName) throws FileNotFoundException,IOException{
  53. boolean flag = false;
  54. try(FileInputStream fileInputStream = new FileInputStream(fileInfo)){
  55. //檢查工作目錄是否存在
  56. if(ftpClient.changeWorkingDirectory(uploadPath)){
  57. if(ftpClient.listFiles(saveName).length != 0){ //檢查文件是否已經存在
  58. boolean deleteFlag = ftpClient.deleteFile(saveName);
  59. log.info(deleteFlag?"文件已存在,直接刪除":"存在同名文件且無法刪除,請檢查權限");
  60. }
  61. flag = ftpClient.storeFile(saveName,fileInputStream);
  62. log.info(flag?"文件上傳成功!":"文件上傳失敗!");
  63. }else{
  64. log.error("找不到要上傳的目錄");
  65. }
  66. }catch (FileNotFoundException e){
  67. log.error("找不到要上傳的文件{}:{}",fileInfo,e.getMessage());
  68. throw e;
  69. }catch (IOException e){
  70. log.error("文件傳輸異常:{}",e.getMessage());
  71. throw e;
  72. }
  73. return flag;
  74. }
  75.  
  76. /**
  77. * 斷開ftp連接
  78. * @param ftpClient
  79. */
  80. private static void disconnect(FTPClient ftpClient) {
  81. if (ftpClient.isConnected()){
  82. try{
  83. ftpClient.disconnect();
  84. log.info("ftp連接已關閉,文件上傳結束");
  85. }catch (IOException e){
  86. log.error("ftp連接關閉失敗:{}",e);
  87. }
  88. }
  89. }
  90.  
  91. }

2. FTP模擬測試環境搭建

通過FileZilla安裝模擬環境:
a. 打開FileZilla的下載中心,下載服務器

Java使用FTP上傳文件并模擬接受的方法

b. 選擇合適的版本后,直接傻瓜式安裝
c. 配置相關數據

相關操作流程如下:

Java使用FTP上傳文件并模擬接受的方法

編輯—>用戶
用戶名和密碼粗略設置如下圖所示

Java使用FTP上傳文件并模擬接受的方法

通過FTP上傳到的文件位置可按個人情況進行設置,勾選相關權限

Java使用FTP上傳文件并模擬接受的方法

以上配置即可滿足測試要求,進一步的東西大家可根據需求自行研究,也歡迎留言交流!

3. 測試代碼

  1. //ftp配置信息
  2. String hostname = "127.0.0.1"; //域名地址
  3. int port = 21; //端口號
  4. String username = "lmh"; //用戶名
  5. String password = "123456"; //密碼
  6. String fileInfo = "E:\\Temporary\\1.file"; //待上傳的文件目錄
  7. String uploadPath = "/"; //待上傳到的路徑
  8. String saveName = FTP+ "_" + DateUtil.format(new Date(),"yyyyMMdd"); //預保存的文件名
  9. FTPTools.upload(hostname, port, username, password, fileInfo, uploadPath, saveName);

4. 測試效果

Java使用FTP上傳文件并模擬接受的方法

附錄1 :Hutool

Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以“甜甜的”。

Hutool中的工具方法來自每個用戶的精雕細琢,它涵蓋了Java開發底層代碼中的方方面面,它既是大型項目開發中解決小問題的利器,也是小型項目中的效率擔當;

Hutool是項目中“util”包友好的替代,它節省了開發人員對項目中公用類和公用工具方法的封裝時間,使開發專注于業務,同時可以最大限度的避免封裝不完善帶來的bug。
就比如

  1. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
  2. String date = sdf.format(new Date());

可以通過Hutool簡化為

  1. String date = DateUtil.format(new Date(),"yyyyMMdd");

類似的例子很多大家可以自己去官網看,文檔清晰明了:https://www.hutool.cn/docs/#/

附錄2:IntelliJ IDEA lombok插件的安裝和使用

到此這篇關于Java使用FTP上傳文件并模擬接受的方法的文章就介紹到這了,更多相關Java FTP上傳文件內容請搜索我們以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持我們!

原文鏈接:https://blog.csdn.net/weixin_45884459/article/details/113742777

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: jizzzxxxxhd| 经典三级av在线 | 精品一区二区三区免费爱 | 欧美第1页| 毛片免费观看视频 | 亚洲精品午夜电影 | free japan xxxxhdsex69 | 国产女王女m视频vk 毛片免费在线视频 | 桥本有菜免费av一区二区三区 | 久久久精品福利 | 国产免费一区二区三区 | chinese18 xxxx videos| 日本成人二区 | 国产亚洲精品成人a | 国产无区一区二区三麻豆 | 欧美在线另类 | 91成人在线免费视频 | 成人在线免费观看小视频 | 国产日韩在线观看视频 | www.com国产精品 | 国产精品久久久久久影院8一贰佰 | 久久网站热最新地址4 | 亚洲福利在线免费观看 | 狠狠干视频网站 | 国产精品jk白丝蜜臀av软件 | 调教小男生抽打尿孔嗯啊视频 | 一级黄色大片在线观看 | 成人福利免费在线观看 | 欧美a级大胆视频 | 亚洲成人在线免费 | 黄色大片在线免费观看 | 中文字幕四区 | 日韩视频二区 | 美女视频免费一区二区 | 久久久久久久高清 | 国产精品18久久久久久久 | 中文在线观看视频 | 欧美久久久一区二区三区 | 欧美日本亚洲视频 | 看黄在线观看 | 中国免费一级毛片 |