/**
 * ftp文件上传
 * @param file
 * @param filename
 */
public void Upload(File file,String filename) {

// 建立FTP链接
FTPClient ftpClient = new FTPClient();
String ftpHost = "x'x'x'x";
int ftpPort = x'x'x;
String ftpUserName = "x'x'x";
String ftpPassword = "x'x'x'x'x'x";

try {
ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器
ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器
ftpClient.setControlEncoding("UTF-8");// 设置字符编码
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);// 传输流:二进制
ftpClient.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
ftpClient.enterLocalPassiveMode(); // 将传输模式设置成被动
 ftpClient.setDataTimeout(60000); // 设置传输超时时间为60秒
ftpClient.changeWorkingDirectory("/quanzai");// 放入路径
if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
ftpClient.disconnect();
} else {
System.out.println("FTP连接成功。!!!!!!!!!!!!!!!!");
}
// 文件所在路径
FileInputStream inFile = new FileInputStream(file);
@SuppressWarnings("unused")
boolean aa = ftpClient.storeFile(new String(filename.getBytes("UTF-8"), "ISO-8859-1"), inFile);
inFile.close();
ftpClient.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}各位大神求助一下,我用java向ftp服务器上传文件, xml文件可以上传 zip格式的文件上传不了也不报错
能帮我看看问题在哪里吗

解决方案 »

  1.   

    FTP传文件,有apache的,sun的,插件有edtftpj,jsch。
    你这用的是apache的,在技术选型的时候我是没尝试过这个...
    apache和sun自己封装耗时,所以直接使用插件,
    因为公司需要SFTP断点续传文件,
    而edtftpj免费版不支持SFTP,所以最终使用jsch。
    你这里不报错,应该是你只catch了IOException,但是如果不创建,aa的值应该返回false吧
      

  2.   

    boolean aa = ftpClient.storeFile(new String(filename.getBytes("UTF-8"), "ISO-8859-1"), inFile); 
    返回值是true