问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 服务器与客户端的文件传输

发布网友 发布时间:2022-05-06 13:28

我来回答

3个回答

热心网友 时间:2022-06-30 18:17

可以直接通过流的形式上传或者下载。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
import hkrt.b2b.view.util.Log;
import java.util.Vector;
import zn.ccfccb.util.CCFCCBUtil;

/**
*/
public class CCFCCBSftp {

/**
* 连接sftp服务器
*
* @return
*/
public static ChannelSftp connect() {
ChannelSftp sftp = null;
try {
JSch jsch = new JSch();
jsch.getSession(CCFCCBUtil.CCFCCBHOSTNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22);
Session sshSession = jsch.getSession(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22);
System.out.println("Session created.");
sshSession.setPassword(CCFCCBUtil.CCFCCBLOGINPASSWORD);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println("Session connected.");
System.out.println("Opening Channel.");
Channel channel = sshSession.openChannel("sftp");
channel.connect();
sftp = (ChannelSftp) channel;
System.out.println("Connected to " + CCFCCBUtil.CCFCCBHOSTNAME + ".");
} catch (Exception e) {

}
return sftp;
}

/**
* 连接sftp服务器
*
* @param host 主机
* @param port 端口
* @param username 用户名
* @param password 密码
* @return
*/
public static ChannelSftp connect(String host, int port, String username,
String password) {
ChannelSftp sftp = null;
try {
JSch jsch = new JSch();
jsch.getSession(CCFCCBUtil.CCFCCBHOSTNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22);
Session sshSession = jsch.getSession(CCFCCBUtil.CCFCCBLOGINNAME, host, port);
System.out.println("Session created.");
sshSession.setPassword(CCFCCBUtil.CCFCCBLOGINPASSWORD);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println("Session connected.");
System.out.println("Opening Channel.");
Channel channel = sshSession.openChannel("sftp");
channel.connect();
sftp = (ChannelSftp) channel;
System.out.println("Connected to " + host + ".");
} catch (Exception e) {

}
return sftp;
}

/**
* 上传文件
*
* @param directory 上传的目录
* @param uploadFile 要上传的文件
* @param sftp
*/
public void upload(String directory, String uploadFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
File file = new File(uploadFile);
sftp.put(new FileInputStream(file), file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 下载文件
*
* @param directory 下载目录
* @param downloadFile 下载的文件
* @param saveFile 存在本地的路径
* @param sftp
* @return
*/
public static String download(String directory, String downloadFile, String saveFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
File file = new File(saveFile);
FileOutputStream fos = new FileOutputStream(file);
sftp.get(downloadFile, fos);
sftp.disconnect();
fos.close();
} catch (Exception e) {
Log.info("下载文件过程出错:" + e.getMessage());
return "false";
}

return "true";
}

/**
* 删除文件
*
* @param directory 要删除文件所在目录
* @param deleteFile 要删除的文件
* @param sftp
*/
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
sftp.rm(deleteFile);
} catch (Exception e) {
}
}

/**
* 列出目录下的文件
*
* @param directory 要列出的目录
* @param sftp
* @return
* @throws SftpException
*/
public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException {
return sftp.ls(directory);
}

public static void main(String[] args) {
CCFCCBSftp sf = new CCFCCBSftp();
String host = CCFCCBUtil.CCFCCBHOSTNAME;
int port = 22;
String username = CCFCCBUtil.CCFCCBLOGINNAME;
String password = CCFCCBUtil.CCFCCBLOGINPASSWORD;
String directory = "/ccfccb/904999900099/download/";
//String uploadFile = "D:\\tmp\\upload.txt";
String downloadFile = "CCF_904999900099_20150317_0001.zip";
String saveFile = CCFCCBUtil.CCFCCBUploadFilePath + "//" + "CCF_904999900099_20150317_0001.zip";
//String deleteFile = "delete.txt";
ChannelSftp sftp = CCFCCBSftp.connect(host, port, username, password);
//sf.upload(directory, uploadFile, sftp);
CCFCCBSftp.download(directory, downloadFile, saveFile, sftp);
//sf.delete(directory, deleteFile, sftp);
try {
sftp.cd(directory);
// sftp.mkdir("ss");
System.out.println("finished");
} catch (Exception e) {
}
}
}

热心网友 时间:2022-06-30 18:18

这个不用FTP就用socket就ok了,我曾写了个FLEX多个用户之间的通信的例题。你可以再服务器短简历一个线程,通过轮训来得到客户端发出的内容。然后在广播给其他的用户。这是多人聊天的功能的思路。至于你要从服务器短获取客户端发来的文件,这个我没写过。但我觉得,是不是应该先传一个标志位过去,是服务器知道是文件来了,然后在接受呢?应为这样的话,可以方便的知道客户端发送上来的数据室什么,这样就方便你的处理。同理客户端下载服务器短的文件也是这样

热心网友 时间:2022-06-30 18:18

文件传输还是用ftp协议吧 聊天的话,可以抽象成一个观察者模式,所有客户端注册到服务端,服务端根据ip等唯一标识来分发聊天的消息,这样别说聊天,连群组都捎带实现了哈。 不过,说真的,还是翻书吧。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...下图方式对折一分为二裁开成为A2纸(如图(2) 明信片怎么样固定 为什么我的高考录取通知书还没有到? 梦见我孙女光秃秃的躺在路上的预兆 师兄请按剧本来分集剧情介绍(第1-40全集)大结局,几点更新,在哪个台播出... 发挥什么优势 三合一烤肠机接煤气罐接口可以换方向吗 关于福睿斯4年,3万公里保养问题请教? 福睿斯水箱加水在哪里 福睿斯水箱加水在哪里加 CSGO武器箱怎么获得 CSGO武器箱钥匙在哪买便宜 csdn上有没有android手机做sftp的例子 用java实现sftp的客户端,channel.connect()的时候,抛出异常,收到信息过长,然后就没连上。怎么回事? java连接Sftp服务器后,使用第三方jar com.jcraft.jsch.ChannelSftp;用get()方法获取的InputStream流为空 channelsftp 怎样将字节流上传到服务器 请问你知道这部电视剧叫什么吗? 求问关于一部电视剧剧情 冬天斑鸠爱在什么地方睡觉的 金庸电视剧《天龙八部》中,段誉追求的"神仙姐姐"叫什么 高一语文书中《氓》“于嗟鸠兮,无食桑葚”有注释:传说斑鸠爱食桑葚,吃多了就会昏醉。真的是这样吗? 曾爱鸠,有多少曾爱鸠,曾爱鸠同名同姓 什么是爱鸠 哪位大神有变质的爱第一季 2018年由赖拉·邦雅淑主演的百度云资源 金立M7 Plus和oppor11plus哪个好? oppo r11 金立m7哪个耐用 各位感觉金立M7咋样 金立M7 Plus和金立S10选哪个好? 金立S11详细评测:四摄与全面屏的完美结合 r11s和金立m7哪个好 opopr11和金立m7哪个好 她很软很甜连载完了吗? 关于java的sftp上传的问题! sftp 链接 session channel 要关闭么 求指教!11求助ssh服务相关!!!远程登录sftp的时候提示 subsystem request failed on channel 0 使用JSch sftp 连接的时候, 程序卡在 sshSession.connect(); 不动 也没报错,程序显示正在运行 jsch实现java sftp上传,在非root用户下出现permission dined异常, sftp下怎么把上传的文件重命名 sftp上传中文文件名的文件,但是传到Linux上后,显示的名字却是乱码,哪位高手能给解决下,谢谢啦~~~~ 余额宝这个投资靠谱吗,收益怎么样? 中通快递 78204829447205? 中通快递 75452540002723? 怎么帮陌生人解封 封了怎么解封对方不是好友可以解封嘛 房子有贷款 卖了 需要付全部利息吗 QQ聊天记录在记录文件里怎么看 按揭贷款的房子如果卖掉,贷款利息要还清吗 贷款卖房子一次还清要利息吗 我贷款买的房,我要想卖的话怎么办,我银行的利息应该我来还,还是买家给还??那位高手帮忙一下, 八字不合,说得是什么?怎么算的? 请高手帮算下八字合不合?谢谢 请各位大师帮帮忙算一下我们的八字合不合