用'Apache的FTPClient上传.gz文件至linux系统后,用gunzip命令进行解压报错,请大侠给个明确解释!
如下:
gunzip xxx.csv.gz
gunzip: xxx.csv.gz: invalid compressed data--crc error
gunzip: xxx.csv.gz: invalid compressed data--length error
/**
* 向FTP服务器上传文件
*
* @param url
* FTP服务器IP
* @param port
* FTP服务器端口
* @param username
* FTP登录账号
* @param password
* FTP登录密码
* @param path
* FTP服务器保存目录
* @param filename
* 上传到FTP服务器上的文件名
* @param input
* 输入流
* @return 成功返回true,否则返回false
*/
public static boolean uploadFile(String url, int port, String username,
String password, String path, String filename, InputStream input)
{
boolean success = false;
FTPClient ftp = new FTPClient();
try
{
// 设置以二进制方式传输
//ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();//设置被动模式
int reply;
ftp.connect(url, port);
// 登录
ftp.login(username, password);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply))
{
ftp.disconnect();
return success;
}
// 找到目标路径
ftp.changeWorkingDirectory(path);
// 储藏
ftp.storeFile(filename, input);
input.close();
ftp.logout();
success = true;
}
catch (IOException e)
{
logger.error("向FTP服务器上传文件异常:", e);
}
finally
{
if (ftp.isConnected())
{
try
{
ftp.disconnect();
}
catch (IOException ioe)
{
}
}
}
return success;
}
如下:
gunzip xxx.csv.gz
gunzip: xxx.csv.gz: invalid compressed data--crc error
gunzip: xxx.csv.gz: invalid compressed data--length error
/**
* 向FTP服务器上传文件
*
* @param url
* FTP服务器IP
* @param port
* FTP服务器端口
* @param username
* FTP登录账号
* @param password
* FTP登录密码
* @param path
* FTP服务器保存目录
* @param filename
* 上传到FTP服务器上的文件名
* @param input
* 输入流
* @return 成功返回true,否则返回false
*/
public static boolean uploadFile(String url, int port, String username,
String password, String path, String filename, InputStream input)
{
boolean success = false;
FTPClient ftp = new FTPClient();
try
{
// 设置以二进制方式传输
//ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();//设置被动模式
int reply;
ftp.connect(url, port);
// 登录
ftp.login(username, password);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply))
{
ftp.disconnect();
return success;
}
// 找到目标路径
ftp.changeWorkingDirectory(path);
// 储藏
ftp.storeFile(filename, input);
input.close();
ftp.logout();
success = true;
}
catch (IOException e)
{
logger.error("向FTP服务器上传文件异常:", e);
}
finally
{
if (ftp.isConnected())
{
try
{
ftp.disconnect();
}
catch (IOException ioe)
{
}
}
}
return success;
}
解决方案 »
- DBCP的defaultAutoCommit 属性问题
- java 基础 :一对多问题
- ehcache问题
- 有没有人通过JPA+topLink+MySQL,自动生成数据库表啊???
- Unable to find a javac compiler
- 请问那里有这本电子书下载
- 给大家送分啦,100分,主要是我不会JS,请教一个简单的JS怎么写
- struts 中index.jsp中就从数据库中读取数据显示出来,那如何让index.jsp先执行IndexAction呢?
- 谁有javamail读取某封邮件正文的例子
- 能告诉我做网站上什么时候用JSP,身摸时候用JS,APPLET等?
- 关于postgreSQL的编码问题,求救啊高人~~
- 速度,关于批量数据插入问题 >>>>>>>>>>>>>>>>
//ftp.setFileType(FTP.BINARY_FILE_TYPE);这个为什么要注释掉呢?不要注释掉。
如果是传输其它文件,可能是编码问题,可能造成文件传输损坏,所以用二进制方式最保险。