2
我使用JSch庫從SD卡到SFTP服務器上傳文件,但它產生這樣的錯誤如何將文件從sdcard上傳到Android中的SFTP服務器?
04-04 14:29:02.609: W/System.err(10706): 3: Permission denied
04-04 14:29:02.609: W/System.err(10706): at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
04-04 14:29:02.609: W/System.err(10706): at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:485)
04-04 14:29:02.609: W/System.err(10706): at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:389)
我的代碼是
public class FileUploadActivity extends Activity {
/** Called when the activity is first created. */
Channel channel = null;
ChannelSftp c = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.downloadmain);
final String host="192.***.*.**";
final String username="*****123";
final String password="****123";
try {
Session session=connectSFTP(host, username, password);
channel = session.openChannel("sftp");
channel.connect();
c = (ChannelSftp) channel;
c.cd("/home/*****11/doc");
String inputFileName =Environment.getExternalStorageDirectory().getAbsolutePath()+"/demo/enck.pdf";
File f = new File(inputFileName);
c.put(inputFileName, "/home/*****11/doc/enck.pdf");
} catch (Exception e) {
// TODO: handle exception
System.err.println("Unable to connect to FTP server."
+ e.toString());
e.printStackTrace();
}
}
public Session connectSFTP(String host,String username,String password){
Session session= null;
try{
JSch js = new JSch();
session = js.getSession(username, host, 22);
session.setPassword(password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
}catch (Exception e) {
// TODO: handle exception
Toast.makeText(getBaseContext(), "Unable to connect Your SFTP Serve"+e, Toast.LENGTH_SHORT);
}
return session;
}
}