2013-11-15 2 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 

Когда я запускаю эту программу я получаю ошибку: Исключение произошло во время WebClient запроса.

У меня есть доступ к файлам для чтения/записи на сервер, на котором я пытаюсь попасть.

Есть ли другой способ загрузить файлы или что-то не так с моим кодом для этого пути?

Спасибо!

+2

Скорее всего, я могу видеть, не зная, что находится на этом сервере, заключается в том, что вы отправляете неправильный «сервис». Поскольку указатель не указан, ваш файл будет доставлен в «индекс по умолчанию» веб-сервера, возможно, 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-служба не обрабатывает загрузку файла, вы можете сохранить файл напрямую, используя Scripting.FileSystemObject VBA. Это будет работать, если вы можете получить доступ к сетевому ресурсу из любого места, где находится ваш документ. Помните, что если документ переносится на другой компьютер, это может не сработать.

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 
Смежные вопросы