簡體   English   中英

Android如何從sdcard上傳文件到SFTP服務器?

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

我正在使用 JSch 庫將文件從 sdcard 上傳到 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;
}
}

要檢查的明顯事項:

  • 您的應用程序是否有權從 SD 卡讀取?
  • 您登錄的用戶是否有權寫入該目的地?

從異常的位置,我推斷您確實有權訪問 inte.net,但這也值得仔細檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM