当前位置:首页 » 文件管理 » apacheftpclient连接池

apacheftpclient连接池

发布时间: 2022-09-22 02:14:54

‘壹’ apache ftpserver1.0.6设置最大连接数和最大登录数问题

listenerFactory.setPort(Integer.parseInt(ftpport));
ftpServerFactory.addListener("default", listenerFactory
.createListener());
ConnectionConfigFactory connectionConfigFactory = new ConnectionConfigFactory();
connectionConfigFactory.setMaxLogins(30);
ConnectionConfig connectionConfig = connectionConfigFactory.createConnectionConfig();
ftpServerFactory.setConnectionConfig(connectionConfig);
调用createConnectionConfig方法就可以了

‘贰’ FTPClient上传文件,文件在ftp服务器创建了,但是文件为空

对这个库不熟悉,你可以看看filename中是不是包含全路径,不然的话你可能上传时无法读取到文件的内容。只是建议,你调试一下看看。

‘叁’ java中在linux环境下,运用org.apache.commons.net.ftp.FTPClient包,下载FTP服务上的文件,报出异常:

1,确保手工用FTP客户端连接没问题。
2,手工没问题,程序也应该没问题才是。
3,确保程序中安全CLOSE连接,FTP服务器也是有连接限制的。
4,适当考虑重起一下FTP服务器。

‘肆’ apache commnet ftp的ftpclient类的setsotimeout和setdatatimeout有什么区别

1. org.apache.commons.net.ftp.FTPClient.setDataTimeout(int)


Sets the timeout in milliseconds to use when reading from the data connection.


设置读取数据传输超时时间


‘伍’ ftp服务器可以像数据库一样提供连接池吗

因为我是调用后台的WebService进行ftp文件的读取,WebService服务器并不一定和ftp服务器是同一台机子,在WebService内封装了对ftp的连接、发送命令、接受数据的,客户端用IE进行操作,所以实际上是WebService不断的和ftp连接,就是想在WebService端能不能作类似于连接池的东西

‘陆’ 使用org.apache.commons.net.ftp.FTPClient上传下载的问题

请检查你的FTP客户端的端口参数是否正确。还有要检查你的杀毒软件及防火墙是否拦截了上传,请将FTP软件加入信任名单。希望能帮到你,呵呵~

‘柒’ apache的ftpClient的setConnectTimeout方法怎么用

apache的ftpClient的setConnectTimeout方法怎么用
用下面的方法来修改:

首先在运行中输入:ftp ,确定后,就进入了命令提示符下的用户登录状态,然后提示输入用户名与密码,正确输入后,就进入了ftp命令方式,在提示符下输入下列的命令,就可以修改密码

ftp>quote site pswd 回车确认,就会出现密码修改成功的提示,再用bye命令返回就行了

‘捌’ FtpClient

当时我用SUN 的FtpClient.get()方法下载文件是有问题的,我推荐你用org.apache.commons.net.ftp.FTPClient下载文件,可以解决中文文件下载问题,你可以去我博客里看看哦:http://hi..com/renliangli/blog/item/6ccb6b3a049d95c9d46225a5.html,文章摘给你吧:
现在就来看下我解决的代码吧,希望对遇到同样问题的人有点帮助。

1)把ftp地址中的文件保存到本地的java类源码

package test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class Ftp {

/**
* Description: 从FTP服务器下载文件
* @param ip FTP服务器的ip地址
* @param port FTP服务器端口,默认为:21
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath FTP服务器上的相对路径
* @param fileName 要下载的文件名
* @param localPath 下载后保存到本地的路径
* @return
*/
public static boolean downFile(String ip, int port,String username, String password, String remotePath,String fileName,String localPath) {
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ip, port);
//下面三行代码必须要,而且不能改变编码格式,否则不能正确下载中文文件
ftp.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");

//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(username, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}

ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();

for(int i = 0; i < fs.length; i++){
FTPFile ff = fs[i];
if(ff.getName().equals(fileName)){

File localFile = new File(localPath+File.separator+ff.getName());
//
OutputStream is = new FileOutputStream(localFile);

//注意此处retrieveFile的第一个参数由GBK转为ISO-8859-1编码。否则下载后的文件内容为空。
//原因可能是由于aix系统默认的编码为ISO-8859-1
ftp.retrieveFile(new String(ff.getName().getBytes("GBK"),"ISO-8859-1"), is);
is.close();
}
}

ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Ftp.downFile("10.32.166.144", 21, "test", "test", "/flashfxp", "激活码.txt", "C:");

}

}

2)将ftp资源以文件流的方式打开,由用户决定保存在本地何处,程序运行后可以从IE跳出框中打开或者保存的Action代码,利用Struts1写的:

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.mocha.test;

import java.io.IOException;

import java.io.OutputStream;

import java.net.URLEncoder;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class DownloadAction extends Action{

/** *//**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
* @throws IOException
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException{

OutputStream os=null;

try {

os = response.getOutputStream();

response.reset();

downFile("10.32.166.144", 21, "test", "test", "/flashfxp", "激活码.txt",os,response);

} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try{
os.close();

} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}

}
return null;

}

/**
* Description: 从FTP服务器下载文件
* @param ip FTP服务器ip地址
* @param port FTP服务器端口,默认为21
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath 附件在FTP服务器上的绝对路径
* @param fileName 要下载的文件名
* @param outputStream 输出流
* @param response
* @return
*/
public static boolean downFile(String ip, int port,String username, String password, String remotePath
,String fileName,OutputStream outputStream,HttpServletResponse response) {
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ip, port);
//下面三行代码必须要,而且不能改变编码格式
ftp.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");

//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(username, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}

ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();

for(int i = 0; i < fs.length; i++){
FTPFile ff = fs[i];
if(ff.getName().equals(fileName)){

String filename = fileName;
//这个就就是弹出下载对话框的关键代码
response.setHeader("Content-disposition",
"attachment;filename=" +
URLEncoder.encode(filename, "utf-8"));
//将文件保存到输出流outputStream中
ftp.retrieveFile(new String(ff.getName().getBytes("GBK"),"ISO-8859-1"), outputStream);
outputStream.flush();
outputStream.close();
}
}

ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
}

差点忘了利用ftpclient要用到的jar包了,呵呵,就这两个了:commons-net-1.4.1.jar、jakarta-oro-2.0.8.jar

对了我用的jdk是1.4的。所以commons-net-1.4.1.jar用了这个版本比较老的。

热点内容
oracle中plsql 发布:2024-10-10 06:19:31 浏览:906
长春工程学院如何改校园网密码 发布:2024-10-10 06:04:38 浏览:794
安卓光遇的像素为什么是糊的 发布:2024-10-10 05:54:12 浏览:989
芒果tv在哪个文件夹 发布:2024-10-10 05:45:49 浏览:189
选择ftp服务器 发布:2024-10-10 04:56:16 浏览:198
php函数fopen 发布:2024-10-10 04:50:20 浏览:239
编程飞鸟站 发布:2024-10-10 04:49:34 浏览:617
数据库基础与应用作业 发布:2024-10-10 04:35:31 浏览:847
淘宝上传图片找同款 发布:2024-10-10 04:31:23 浏览:436
玩具直播脚本 发布:2024-10-10 04:31:19 浏览:629