2016-01-21 6 views
0

Итак, я написал код, который позволяет загрузить файл PDF на FTP-сервер. один раз на сервере, я могу загрузить его с сервера через Chrome, и он будет работать нормально. но я хочу загрузить его через мою программу, поэтому я написал еще несколько кодов, которые, как правило, делают это, размер файла, который я получаю, равен 0kb, поэтому пуст. Как это исправить?FTP загрузка пустого PDF vb.net

Module Module1 

Sub Main() 
    Dim output As IO.Stream 
    Dim FileName As String 
    Console.WriteLine("Enter the name of the file to download:") 
    FileName = Console.ReadLine 
    Try 
     Dim request As System.Net.FtpWebRequest 
     request = DirectCast(System.Net.WebRequest.Create("ftp://ftp.drivehq.com/Folder/" & FileName & ".pdf"), System.Net.FtpWebRequest) 
     'request.Method=Net.WebRequestMethods.Ftp.GetFileSize 
     'FileLength = cint(FTPRequest.getresponse.contentLength) 
    Catch ex As Exception 

    End Try 

    Try 
     Dim request As System.Net.FtpWebRequest 
     request = DirectCast(System.Net.WebRequest.Create("ftp://ftp.server.com/Folder/" & FileName & ".pdf"), System.Net.FtpWebRequest) 
     request.Credentials = New System.Net.NetworkCredential("Username", "Password") 
     request.Method = System.Net.WebRequestMethods.Ftp.DownloadFile 
     Dim stream As System.IO.Stream = request.GetResponse.GetResponseStream 
     'Dim OutPutFilepath As String = "DownloadTest" & "\" & IO.Path.GetFileName("ftp://ftp.Server.com/Folder/") 
     output = System.IO.File.Create("C:\Users\ASUS\Documents\TestFile2.pdf") 

     output.Close() 
     stream.Close() 
     Console.WriteLine("Downloaded") 
     Console.ReadLine() 


    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 

End Sub 

End Module 

Спасибо.

+0

кажется, Вы не должны писать 'stream' в файл, который вы создаете (' output'). Вы просто закрываете поток и файл. – theduck

ответ

0

Убедитесь, что вы записываете данные из вашего потока в файл:

Dim stream As System.IO.Stream = request.GetResponse.GetResponseStream 
    output = System.IO.File.Create("C:\Users\ASUS\Documents\TestFile2.pdf") 
    stream.CopyTo(output) 
    output.Close() 
    stream.Close() 
+0

Спасибо! Это была проблема. – User59

Смежные вопросы