2012-04-04 70 views
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; 
} 
} 

回答

1

明顯的事情來檢查:

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

從例外的位置,我推斷你有權訪問互聯網,但這也值得仔細檢查。

相關問題