需要设置文件上传的方式,即调用ftpclient的方法setfiletype(),并传入参数FTP.BINARY_FILE_TYPE
,如下是FTPClient的API中关于这个方法中参数的说明原文:
Sets the file type to be transferred. This should be one of FTP.ASCII_FILE_TYPE
, FTP.BINARY_FILE_TYPE
, etc. The file type only needs to be set when you want to change the type. After changing it, the new type stays in effect until you change it again. The default file type is FTP.ASCII_FILE_TYPE
if this method is never called.
意思是ftp文件上传时,需要指定filetype,并且是FTP.ASCII_FILE_TYPE
, FTP.BINARY_FILE_TYPE
两个中其中一个,如果不设置(如果不调用setFileType方法),则默认的文件上传方式是FTP.ASCII_FILE_TYPE
。
往往当上传到服务器时的文件是0KB时,问题就在这个默认值上,这也跟FTP服务器的设置有关系(猜测是与FTP服务器的安全方面的设置相关),只需要调用一下setFileType方法并指定参数为FTP.BINARY_FILE_TYPE
就可以了。