How can i upload file from sdcard to SFTP server in Android?

Go To StackoverFlow.com

2

I am using JSch library to upload file from sdcard to SFTP server but it's generate such error

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)

My code is

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;
}
}
2012-04-04 06:32
by Bhargav Panchal


1

Obvious things to check:

  • Does your application have permission to read from the SD card?
  • Does the user you're logging in with have permission to write to that destination?

From the location of the exception, I deduce that you do have permission to access the internet, but that's also worth double-checking.

2012-04-04 10:53
by Andrew Aylett
Ads