导航:首页 > 编程语言 > javasftp实现

javasftp实现

发布时间:2025-03-09 20:17:34

1. java 实现sftp上传文件 都有哪些方式

JSch支持三种文件传输模式:

OVERWRITE 完全覆盖模式,这是JSch的默认文件传输模式,即如果目标文件已经存在,传输的文件将完全覆盖目标文件,产生新的文件。
RESUME
恢复模式,如果文件已经传输一部分,这时由于网络或其他任何原因导致文件传输中断,如果下一次传输相同的文件,

则会从上一次中断的地方续传。

APPEND 追加模式,如果目标文件已存在,传输的文件将在目标文件后追加。

2. 用java实现FTP需要导入什么包,导入哪里呢,能不能改个包

有二个种FTP方式:ftp和sftp

ftp的包:commons-net-3.3.jar

sftp包:com.jcraft.jsch_0.1.31.jar

3. 用java实现sftp的客户端,channel.connect()的时候,抛出异常,收到信息过长,然后就没连上。怎么回事

首先,不太明确你要问什么?
J2EE是java企业级应用,它里面关于安全方面的东西很多!
权限管理?信息安全?授权服务?访问控制?数据机密性?
要是你想全部都了解!
在这里提问是不行的!太庞杂了!
如果 你要问的是 java ftp传输过程中的一些安全注意事项!
这里建议 你使用 apache的开源项目。他们把基于java的ftp操作都封装好了!
安全相关都有保证。
我下面可以给你复制一段 ftp下载远程终端的java代码!你可以参考一下!

需要下载 org.apache.commons.net包
可以到 网站下载!
/**
* 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,String localfile) {
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.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 localfilename = localfile;//按规则设置文件名这里你要下载文件,可以自己定义下载之后的文件名
File localFile = new File(localPath+File.separator+localfilename);

OutputStream is = new FileOutputStream(localFile);
//此处retrieveFile的第一个参数由GBK转为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;
}

4. 怎么用java实现ftp的登陆

/**
*依赖commons-net-3.4.jar,commons-io-2.4.jar
*/
publicclassFtpUtils{
/**
*上传
*@paramhostFTP地址
*@paramport端口ftp默认22,sftp默认23
*@paramuserftp用户名
*@parampwdftp密码
*@paramdestPathFTP文件保存路径
*@paramfileNameftp保存文件名称
*@paramfile需要上传的文件
*/
publicstaticvoipload(Stringhost,intport,Stringuser,Stringpwd,StringdestPath,StringfileName,Filefile){
FTPClientftp=null;
InputStreamfis=null;
try{
//1.建立连接
ftp=newFTPClient();
ftp.connect(host,port);
//2.验证连接地址
intreply=ftp.getReplyCode();
if(FTPReply.isPositiveCompletion(reply)){
ftp.disconnect();
return;
}
//3.登录
ftp.login(user,pwd);
//设置上传路径、缓存、字符集、文件类型等
ftp.changeWorkingDirectory(destPath);
ftp.setBufferSize(1024);
ftp.setControlEncoding("UTF-8");
ftp.setFileType(FTP.BINARY_FILE_TYPE);
//4.上传
fis=newFileInputStream(file);
ftp.storeFile(fileName,fis);
}catch(SocketExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
IOUtils.closeQuietly(fis);
try{
if(ftp.isAvailable()){
ftp.logout();
}
if(ftp.isConnected()){
ftp.disconnect();
}
//删除上传临时文件
if(null!=file&&file.exists()){
file.delete();
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}

5. jsch实现java sftp上传,在非root用户下出现permission dined异常,

这个正常,应该是你当前上传用户在上传位置没有权限造成的,权限应该在服务器端修改

阅读全文

与javasftp实现相关的资料

热点内容
zbrushpdf 浏览:897
met肌肉能量技术pdf 浏览:195
php面试重点 浏览:683
如何从管理员界面删除文件夹 浏览:908
单片机三总线信息如何隔离 浏览:690
云服务器研发费用明细 浏览:957
unity3d手机游戏开发pdf 浏览:366
mysql重启命令linux 浏览:876
程序员日常业余内容 浏览:363
steam如何更改吃鸡服务器 浏览:212
我的世界up主多人用什么服务器 浏览:161
缝纫机电脑机编程 浏览:59
autowired源码深度解析 浏览:895
校园卡怎么上app 浏览:743
pascal高精度算法 浏览:870
阿里云服务器如何修改php 浏览:8
51单片机小项目 浏览:607
为什么d盘e盘无法解压 浏览:314
软件放文件夹压缩以后会变小吗 浏览:669
文件夹中的图片怎么整体压缩 浏览:579