emrocky 2016-03-11 13:20 采纳率: 100%
浏览 3327
已采纳

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

求大神帮忙分析看看出错原因可能在哪,折腾我一个下午了.

  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2016-03-12 01:22
    关注

    检查下带你的异常分支,看看有没有异常信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问