vbsftp上傳
A. VB如何連接sftp下載文件
因為安全原因,需要SFTP協議(sftp是SecureFile Transfer Protocol的縮寫,安全文件傳送協議。可以為傳輸文件提供一種安全的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。SFTP 為 SSH的一部份,是一種傳輸檔案至Blogger 伺服器的安全方式。其實在SSH軟體包中,已經包含了一個叫作SFTP(Secure File TransferProtocol)的安全文件傳輸子系統,SFTP本身沒有單獨的守護進程,它必須使用sshd守護進程(埠號默認是22)來完成相應的連接操作,所以從某種意義上來說,SFTP並不像一個伺服器程序,而更像是一個客戶端程序。SFTP同樣是使用加密傳輸認證信息和傳輸的數據,所以,使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網路安全性要求更高時,可以使用SFTP代替FTP)
准備階段
需要引用第三方類庫Tamir.SharpSSH.dll。鏈接地址(http://www.tamirgal.com/blog/page/SharpSSH.aspx)
    我下載的是(Downloadbinaries: SharpSSH-1.1.1.13.bin.zip)DotNetSSH 文件
把Tamir.SharpSSH.dll載入到項目中。
實現階段
增加一個類SFTPHelper
1Imports Tamir.SharpSsh.jsch
  2
  3PublicClass SFTPHelper
  4     Private m_session As Session
  5     Private m_channel As Channel
  6     Private m_sftp As ChannelSftp
  7
  8     PublicSubNew(ByVal host AsString, ByVal user AsString, ByVal pwd AsString)
  9         Dim arr() AsString = host.Split(":")
 10         Dim ip AsString = arr(0)
 11         Dim port AsInteger = 22
 12         If (arr.Length > 1) Then
 13             port = Int32.Parse(arr(1))
 14         EndIf
 15
 16         Dim jsch As JSch = New JSch()
 17         m_session =jsch.getSession(user, ip, port)
 18         Dim ui As MyUserInfo = New MyUserInfo()
 19         ui.setPassword(pwd)
 20         m_session.setUserInfo(ui)
 21     End Sub
 22
 23     'SFTP獲取文件       
 24     PublicFunction GetInfo(ByVal remotePath AsString, ByVal localPath AsString) AsBoolean
 25         Try
 26             Dim src As Tamir.SharpSsh.java.String = New Tamir.SharpSsh.java.String(remotePath)
 27             Dim dst As Tamir.SharpSsh.java.String = New Tamir.SharpSsh.java.String(localPath)
 28             m_sftp.get(src, dst)
 29             ReturnTrue
 30         Catch
 31             ReturnFalse
 32         EndTry
 33     End Function
 34     'SFTP連接狀態       
 35     PublicProperty Connected AsBoolean
 36         Get
 37             Return m_session.isConnected()
 38         EndGet
 39         Set(ByVal value AsBoolean)
 40
 41         EndSet
 42     End Property
 43
 44     '連接SFTP       
 45     PublicFunction Connect() AsBoolean
 46         Dim flag AsBoolean = False
 47         Try
 48             If (Not Connected()) Then
 49                 m_session.connect()
 50                 m_channel =m_session.openChannel("sftp")
 51                 m_channel.connect()
 52                 m_sftp = m_channel
 53                 flag = True
 54             EndIf
 55         Catch
 56             flag = False
 57         EndTry
 58         Return flag
 59     End Function
 60
 61     '斷開SFTP       
 62     PublicSub Disconnect()
 63
 64         If (Connected()) Then
 65             m_channel.disconnect()
 66             m_session.disconnect()
 67         EndIf
 68     End Sub
 69
 70     '登錄驗證信息       
 71     PublicClass MyUserInfo
 72         Implements UserInfo
 73
 74         Dim passwd AsString
 75
 76         PublicSub setPassword(ByVal ppasswd AsString)
 77             passwd = ppasswd
 78         End Sub
 79         PublicFunction getPassphrase() AsStringImplementsTamir.SharpSsh.jsch.UserInfo.getPassphrase
 80             ReturnNothing
 81         End Function
 82         PublicFunction getPassword() AsStringImplements Tamir.SharpSsh.jsch.UserInfo.getPassword
 83             Return passwd
 84         End Function
 85
 86         PublicFunction promptPassphrase(ByVal message AsString) AsBooleanImplements Tamir.SharpSsh.jsch.UserInfo.promptPassphrase
 87             ReturnTrue
 88         End Function
 89         PublicFunction promptPassword(ByVal message AsString) AsBooleanImplementsTamir.SharpSsh.jsch.UserInfo.promptPassword
 90             ReturnTrue
 91         End Function
 92         PublicFunction promptYesNo(ByVal message AsString) AsBooleanImplements Tamir.SharpSsh.jsch.UserInfo.promptYesNo
 93             ReturnTrue
 94         End Function
 95         PublicSub showMessage(ByVal message AsString) Implements Tamir.SharpSsh.jsch.UserInfo.showMessage
 96
 97         End Sub
 98     End Class
 99
100End Class
還有一個最簡單的辦法
 Shell "explorer 下載地址"
B. sftp 上傳下載文件的時候 sh.GetFileList("/PF/Upload/", "test.txt"); 提示未將對象引用到實例。
我也遇到過 你應該檢查下你的值是不是為null,跟蹤調試下看看呢,雖然我對這個不太懂 給一點我的想法吧
C. windows 下如何使用sftp自動登錄上傳文件
1首先打開linux客戶端工具,新建一個連接
2IP地址填寫我們本機的IP地址
3創建完畢,打開剛才創建的連接進行連接
4連接打開,在命令行輸入 sfpt 伺服器IP地址
5進入用戶名填寫處,填寫我們需要傳輸文件的伺服器用戶名
6接著填寫登錄密碼
7顯示如下標志表明,已經登錄成功,使用put 文件路徑即可實現文件傳輸
D. 為什麼用SFTP上傳這個更改了的文件老是失敗呀,上傳圖片其它的都行
錯誤信息里提示了:Permission denied,沒有許可權呀,估計是後台限制了你上傳某類文件了
E. SFTP 怎麼往伺服器上上傳整個文件夾
使用SecureSRT中的SFTP傳遞文件夾時,有個小細節值得注意一下:
1)在文件夾名dirname後加上'/',傳輸後,目標位置沒有新建文件夾dirname,只有dirname文件夾下的各個文件。
如:
sftp> get -r smsrc/
2)在文件夾名dirname後不加'/',傳輸後,目標位置新建文件夾dirname,所有文件位置新建文件夾dirname下。
如:
sftp> get -r smsrc
F. 如何設置通過sftp將文件上傳到linux指定 工具指定根目錄路徑
如果是window下上傳到linux,可以安裝個flashfxp軟體。輸入用戶密碼。就可以象ftp一樣上傳文件到linux里。。
如果是linux傳linux。。。
直接使用sftp ip 輸入用戶密碼,然後用cd ls put get等命令就可以把文件傳到相應目錄
具體命令參數可以輸入sftp --help 就可以參看了
