2013-11-15 1 views
0

VB.net을 사용하여 서버에 파일을 보내려고합니다. 나는 그것을하기가 쉽지 않다고 생각하는 많은 예를 발견했다.VB.net UploadFile

내가 시도하고 현재 한 다음 코드입니다 :

Dim WithEvents wc As New System.Net.WebClient() 
Private Sub oWord_DocumentBeforeClose(ByVal Doc As Microsoft.Office.Interop.Word.Document, ByRef Cancel As Boolean) Handles oWord.DocumentBeforeClose 
    Try 

     Using wc As New System.Net.WebClient() 
      wc.Credentials = New NetworkCredential("ehavermale", "ernie1") 
      wc.UploadFile("http://192.168.95.1:83/GraphTest.txt", "C:\Users\EHovermale\Desktop\GraphTest.txt") 
     End Using 
    Catch ex As Exception 
     MsgBox("Error:" + ex.Message) 
    End Try 

    'System.IO.File.Delete("C:\Users\EHovermale\Desktop\GraphTest.txt") 

    MsgBox("See Ya") 
End Sub 

나는이 프로그램을 실행하면 나는 오류를 얻을 :에 예외는 웹 클라이언트 요청 중에 발생했습니다.

내가 공격하려고하는 서버에 파일을 읽고 쓸 수 있습니다.

파일을 업로드하는 또 다른 방법이 있습니까? 아니면이 방법으로 내 코드에 문제가 있습니까?

감사합니다.

+2

이 서버에 무엇이 있는지 모른 채 볼 수있는 가장 일반적인 것은 잘못된 "서비스"에 게시하는 것입니다. 경로가 지정되지 않았으므로 파일은 웹 서버의 "Default Index"(아마도 default.aspx 또는 index.html)로 전달됩니다. 웹 서버가이 주소의 파일 게시를 허용하도록 구성되지 않은 경우 아무 것도 발생하지 않습니다. 아마도 다음과 같은 경로를 지정해야합니까? wc.UploadFile ("http : // localhost : 52234/FileReceivedHandler.ashx", "C : \ Users \ davidr \ Desktop \ foo.txt") – laylarenee

+0

이 서버를 "제어 할 수 있습니까? ("http://192.168.95.1:83") – laylarenee

+0

경로를 변경하여 파일 이름을 추가했지만 여전히 동일한 오류가 발생합니다. 나는이 서버를 관리하고있다. 이 프로세스가 어떻게 작동하는지 오해하고 있습니다. 서버에서 파일을 보내 서버에 저장하는 기능을 찾고 있습니다.이 방법을 사용하면이 방법을 사용할 수 있습니다. @DavidR – Ehaver282

답변

-1

파일 업로드를 처리 할 HTTP 서비스가 없으므로 VBA의 Scripting.FileSystemObject를 사용하여 파일을 직접 저장할 수 있습니다. 문서가있는 곳 어디에서나 네트워크 공유에 액세스 할 수 있으면 작동합니다. 문서를 다른 컴퓨터로 옮기면 작동하지 않을 수 있습니다.

Public Sub MoveFile() 

    Dim fso As Object 
    Dim sourceFile As String 
    Dim targetFile As String 

    ' You must add reference to "Microsoft Scripting Runtime" to your document 
    ' Tools > References... > scroll down the item. 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    sourceFile = "C:\Users\davidr\Desktop\foo.txt" 
    targetFile = "\\192.168.95.1:83\foo.txt" 

    ' Test if destination file already exists 
    If fso.FileExists(targetFile) Then 
     MsgBox ("This file exists!") 
     Exit Sub 
    End If 

    ' Move the file 
    fso.CopyFile sourceFile, targetFile 
    Set fso = Nothing 

End Sub