你好!我也碰到了SFTP传输,纯java可以,Android就不行,纠结好几天了,希望你能尽快帮我解答,谢谢!

你好!我也碰到了SFTP传输,纯java可以,Android就不行,纠结好几天了,希望你能尽快帮我解答,谢谢!,第1张

我就是用sftp传输的,Android下,就是用手机录音,然后把录下来的音频文件保存到服务器里,给你源代码吧,

import javaioFile;
import javaioFileInputStream;
import javaioFileOutputStream;
import javautilDate;
import javautilProperties;
import javautilVector;
import androidcontentContext;
import androidtelephonyTelephonyManager;
import androidtextformatDateFormat;
import androidtextformatTime;
import comjcraftjschChannel;
import comjcraftjschChannelSftp;
import comjcraftjschJSch;
import comjcraftjschSession;
import comjcraftjschSftpException;
public class Sftp_upload {
 /
   连接sftp服务器
   @param host 主机
   @param port 端口
   @param username 用户名
   @param password 密码
   @return
  /
 public ChannelSftp connect(String host, int port, String username,String password) {
 
 ChannelSftp sftp = null;
  try {
   JSch jsch = new JSch();
   jschgetSession(username, host, port);
   Session sshSession = jschgetSession(username, host, port);
   Systemoutprintln("Session created");
   sshSessionsetPassword(password);
   Properties sshConfig = new Properties();
   sshConfigput("StrictHostKeyChecking", "no");
   sshSessionsetConfig(sshConfig);
   sshSessionconnect();
   Systemoutprintln("Session connected");
   Systemoutprintln("Opening Channel");
   Channel channel = sshSessionopenChannel("sftp");
   channelconnect();
   sftp = (ChannelSftp) channel;
   Systemoutprintln("Connected to " + host + "");
   //Systemoutprintln("登录成功");
  } catch (Exception e) {

  }
  return sftp;
 }
 /
   上传文件
   @param directory 上传的目录
   @param uploadFile 要上传的文件
   @param sftp
  /
 public void upload(String directory, String uploadFile, ChannelSftp sftp) {
  
 try {
   sftpcd(directory);
   File file=new File(uploadFile);
  
   String currentTime=DateFormatformat("yyyy_MM_dd_hh_mm_ss", new Date())toString(); //获取时间
   String filename=currentTime+"wav"; //文件名为当前时间来保存
   sftpput(new FileInputStream(file), filename);   
  


   Systemoutprintln("上传成功!");
} catch (Exception e) {
   eprintStackTrace();
  }
 }
 /
   下载文件
   @param directory 下载目录
   @param downloadFile 下载的文件
   @param saveFile 存在本地的路径
   @param sftp
  /
 public void download(String directory, String downloadFile,String saveFile, ChannelSftp sftp) {

  try {
   sftpcd(directory);
   File file=new File(saveFile);
   sftpget(downloadFile, new FileOutputStream(file));
  } catch (Exception e) {
   eprintStackTrace();
  }
 }
 /
   删除文件
   @param directory 要删除文件所在目录
   @param deleteFile 要删除的文件
   @param sftp
  /
 public void delete(String directory, String deleteFile, ChannelSftp sftp) {

 try {
   sftpcd(directory);
   sftprm(deleteFile);
  } catch (Exception e) {
   eprintStackTrace();
  }
 }
 /
   列出目录下的文件
   @param directory 要列出的目录
   @param sftp
   @return
   @throws SftpException
  /
 public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException{
  
 return sftpls(directory);
 
 }
 
 //上传文件
 
 
 public static void Sftp_server(String file,String imsi) {
  String Imsi = imsi;  
  Sftp_upload sf = new Sftp_upload(); 
  String host = "192168160";
  int port = 22;
  String username = "root";
  String password = "123456";
  String directory = "/data/test/wav";
  //String uploadFile = "c:\\audiocheck\\testwav";
  String uploadFile = file;
 // String downloadFile = "/data/test/wav/lamesh";
// String saveFile = "c:\\audiocheck\\contenttxt";
 // String deleteFile = "c:\\audiocheck\\contenttxt";
  ChannelSftp sftp=sfconnect(host, port, username, password);
  
  //sfdownload(directory, downloadFile, saveFile, sftp);
  //sfdelete(directory, deleteFile, sftp);

   try{
   sftpcd(directory);
   sftpmkdir(Imsi); //创建目录
   Systemoutprintln("finished");
  }catch(Exception e){
  eprintStackTrace();
  }
  directory = "/data/test/wav/"+imsi;
  sfupload(directory, uploadFile, sftp);//上传文件到服务器
 
 }
 
}

这个就是源代码,

然后上传的时候用的代码

//imsi也就是 手机的型号来创建文件夹的,这些你都可以修改的。
String file = mWorkdir+"/"+"resFilewav"; //要上传的文件
Sftp_uploadSftp_server(file,imsi); //上传文件
Systemoutprintln("已上传");


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10910137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存