私は、クライアントが(SharpSSH.dllを使用して)データファイルをsftpに送信するサイトを作っています。私のソリューションは開発マシンでうまく動作しますが、プロダクションサーバーにアップロードできません。SFTP with VB.NET - サーバーからのアップロード問題
私のコードはサーバー上にファイルが存在しないときにコードを取得しようとしているため、この問題を解決するための最良の方法についていくつかのポインタが必要です。クライアントマシンからsftpのアップロードを許可するコード?
計画は、基本的には(私はこれについて正しい方法で行っていることを完全には確信していません)クライアントがログオンして別のサーバーにファイルを送信するように、私のWebサーバーを中断して使用します。アドバイスやポインタは非常に歓迎している - 以下のコードを参照してください。
transfer = New SecureFileTransfer("IP", "PORT", "NAME", "PASSWORD")
If transfer.putFile(FileUpload.PostedFile.FileName, company & "/" & filename) = True Then
lblMsg.Text = "File upload complete!"
'write data file details to table
writeAudit()
'check which account manager to alert and send email notification
emailNotify()
Else
lblMsg.Text = "File upload has failed - please try again..."
Exit Sub
End If
Public Sub New(ByVal hostname As String, ByVal port As Integer, ByVal username As String, ByVal password As String)
Me._hostname = hostname
Me._port = port
Me._username = username
Me._password = password
End Sub
Public Function putFile(ByVal localFile As String, ByVal remotePath As String) As Boolean
Try
transfer = New Sftp(Me._hostname, Me._username, Me._password)
transfer.Connect(Me._port)
transfer.Put(localFile, remotePath)
transfer.Close()
Return True
Catch ex As Exception
Dim objWriter As New System.IO.StreamWriter("C:\logfile.txt")
objWriter.Write(ex.Message)
objWriter.Close()
Return False
End Try
End Function
を私はSFTPの資格情報をチェックして、私のWebサーバからSFTPサーバへのアクセスが有効で動作していることを確認してきました。うまく
こんにちは、私に戻ってくれてありがとう - テスト用のファイルが自分のコードと同じマシンに存在するように、マシン上で自分のコードをローカルでテストしただけです。問題は、サーバーがクライアントマシン上のアップロードファイルを見ることができないので、(一時的に)このファイルをWebサーバーに安全に移動し、SFTPサーバーに移動する方法を知る必要があることです。 – allanmayberry88