我就是用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("已上传");
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)