程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> spring-FTPclient 上傳文件不完整

spring-FTPclient 上傳文件不完整

編輯:編程解疑
FTPclient 上傳文件不完整

問題表現:本地zip包上傳到FTP後壓縮包中只有一個0KB的文件,整個ZIP包只占10B好像(大小記不清了,反正只有一個文件名,裡面內容是空的,以記事本打開的話能看到一個問號)
問題詳情:
項目中是有一個單獨的FTP上傳類的,上傳的方法是這樣的:

public >
...

public boolean upload(String ftppath,String localfilepath){

...

//前面的代碼已經將工作目錄設置好了

FileInputStream inputStream=new FileInputStream(localfilepath);

ftpClient.storeFile(filenam,localfilepath);

...

}

...

}

public static void main(String[]args){

myftpclient client=new myftpclient();

...//設置連接參數

client.upload("/export/abcd.csv.zip","D:/localtmp/export/abcd.csv.zip");

...

}

大體上的代碼就是這樣.

執行main函數時,文件是能完整的上傳到ftp的.

在另一個類(跨包)中通過spring AutoWire(連接參數已在context中配置)注入之後,調用upload方法就會只上傳一個10B大小的包含一個空文件的ZIP包.文件名和路徑都是正確創建,就是文件沒有內容.

我加過斷點調試,傳遞的參數與main方法中是一致的,FTP socket的連接參數除了本地端口一直在變之外.其他都是一致的.

main方法執行結果正常,說明上傳方法是沒問題的.

文件成功在服務器創建,說明Spring注入的連接參數也是沒問題的(吧?)

可是為什麼main就能完整的上傳文件,跨包類(一個在util包下,一個在service包下,)上傳就是空文件,問題在哪呢?

stackoverflow上有個問題很相似,Apache Commons Ftp file uploaded 0 bytes

但他是0字節,我是10字節...而且我也試過答案中的加上和去掉ftpsClient.enterLocalPassiveMode();但是不頂用..

求大神幫忙分析看看出錯原因可能在哪,折騰我一個下午了.

最佳回答:


檢查下帶你的異常分支,看看有沒有異常信息。

emrocky
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved