Ftpclient上传文件内容为空,求助

emrocky 2016-03-11 09:04:14
问题表现:本地zip包上传到FTP后压缩包中只有一个0KB的文件,整个ZIP包只占10B好像(大小记不清了,反正只有一个文件名,里面内容是空的,以记事本打开的话能看到一个问号)
问题详情:
项目中是有一个单独的FTP上传类的,上传的方法是这样的:

public class myftpclient{
...
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();但是不顶用..

求大神帮忙分析看看出错原因可能在哪,折腾我一个下午了.
...全文
237 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧