问题描述:可以上传 ,没有任何异常,但是上传的文件打不开。上传的文件为*.tar.gz 本地可以打开。(其实FTP服务也是本地的)。
文件名:FtpClientUtil.javaFTPClient client;
MyLogger log = MyLogger.getLogger(FTPClinteUtil.class);
public void login(int mode,String url,int port,String username, String password){
client = new FTPClient();
try {
int reply;
client.connect(url, port);//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
client.login(username, password);//登录
reply = client.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
client.disconnect();
}
// client.setFileTransferMode(mode);
log.info2User("0011",url);
}catch (Exception e) {
if (client.isConnected()) {
try {
client.disconnect();
} catch (IOException ioe) {
}
}
log.info2User("0012",url);
throw new RuntimeException(e);
}
}
/**
* Description: 向FTP服务器上传文件
* @param path FTP服务器保存目录
* @param filename 上传到FTP服务器上的文件名
* @param input 输入流
* @return 成功返回true,否则返回false
*/
public boolean uploadFile( String path, String filename, InputStream input) {
boolean success = false;
try {
client.changeWorkingDirectory(path);
client.storeFile(filename, input);
input.close();
success = true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return success;
}
public void logout(){
try {
client.logout();
} catch (IOException e) {
e.printStackTrace();
}finally{
if (client.isConnected()) {
try {
client.disconnect();
} catch (IOException ioe) {
}
}
}
}
具体应用的伪代码:ftpClinteUtil.login(Integer.parseInt(mode), ip, i_port, user, pass);
//List<File>
for(int fi = 0;fi<list.size();fi++){
boolean b = ftpClinteUtil.uploadFile(dir, list.get(fi).getName(), new FileInputStream(list.get(fi)));
if(b){
log.info2User("送信成功");
}else{
ftpsendSuccess = false;
log.info2User("送信異常,this is last retry!");
}
}
ftpClinteUtil.logout();
问题描述:可以上传 ,没有任何异常,但是上传的文件打不开。上传的文件为*.tar.gz 本地可以打开。(其实FTP服务也是本地的)。
文件名:FtpClientUtil.javaFTPClient client;
MyLogger log = MyLogger.getLogger(FTPClinteUtil.class);
public void login(int mode,String url,int port,String username, String password){
client = new FTPClient();
try {
int reply;
client.connect(url, port);//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
client.login(username, password);//登录
reply = client.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
client.disconnect();
}
// client.setFileTransferMode(mode);
log.info2User("0011",url);
}catch (Exception e) {
if (client.isConnected()) {
try {
client.disconnect();
} catch (IOException ioe) {
}
}
log.info2User("0012",url);
throw new RuntimeException(e);
}
}
/**
* Description: 向FTP服务器上传文件
* @param path FTP服务器保存目录
* @param filename 上传到FTP服务器上的文件名
* @param input 输入流
* @return 成功返回true,否则返回false
*/
public boolean uploadFile( String path, String filename, InputStream input) {
boolean success = false;
try {
client.changeWorkingDirectory(path);
client.storeFile(filename, input);
input.close();
success = true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return success;
}
public void logout(){
try {
client.logout();
} catch (IOException e) {
e.printStackTrace();
}finally{
if (client.isConnected()) {
try {
client.disconnect();
} catch (IOException ioe) {
}
}
}
}
具体应用的伪代码:ftpClinteUtil.login(Integer.parseInt(mode), ip, i_port, user, pass);
//List<File>
for(int fi = 0;fi<list.size();fi++){
boolean b = ftpClinteUtil.uploadFile(dir, list.get(fi).getName(), new FileInputStream(list.get(fi)));
if(b){
log.info2User("送信成功");
}else{
ftpsendSuccess = false;
log.info2User("送信異常,this is last retry!");
}
}
ftpClinteUtil.logout();
问题描述:可以上传 ,没有任何异常,但是上传的文件打不开。上传的文件为*.tar.gz 本地可以打开。(其实FTP服务也是本地的)。
解决方案 »
- java连接数据库mysql时候出现错误求解决
- java 获得默认网关 和 子网掩码 本机 在线等
- 求经典的截取带中文字符串的方法。。。
- 面试题,在线寻求帮助!
- [在线等]当weblogic从8升级到9时,出现java.lang.IllegalArgumentException,如何解决?
- spring+hibernate+struts整合开发一个guestbook(留言板)运行时遇到如下问题!搞了两天了.哭无泪啊! 求助!
- 200分.急:跪求《趣味程序导学JAVA 2》配套光盘源代码
- 发邮件必须通过邮件服务器吗?还有别的什么办法吗?
- 如何获得本地计算机的网络设置,例如网关设置,DNS设置等等?
- Javaoop
- spring+hibernate声明事务不回滚的问题,求解答,急!!!
- 用get方式提交如何取到某个元素的值
File uploadFile = new File("c:/OriRevision.doc");
inPut = new FileInputStream(uploadFile);
// Notice the follow row,Sets the file type to be transferred.
client.setFileType(FTP.BINARY_FILE_TYPE);
client.storeFile(uploadFile.getName(),inPut);
// 设置文件类型
ftpclient.setFileType(BINARY_FILE_TYPE);
ftpclient.enterLocalPassiveMode();
// 文件传输模式:FTP文件流传输
ftpclient.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
InputStream input = new FileInputStream(file);
错误就在没有setFileType啊。
thanks!