【问题标题】:ftp upload of multiple large files into one fileftp 将多个大文件上传到一个文件中
【发布时间】:2011-05-09 16:42:43
【问题描述】:

我正在尝试通过将 2 个大文件作为一个文件上传到某个位置来将 2 个大文件上传到 ftp 服务器。如果文件很小,我可以使用它,但它会因文件大而崩溃。

For i As Integer = 0 To filelist.Count() - 1

        Dim fRequest As FtpWebRequest = WebRequest.Create(ftpPath & "/Reports/" & filelist.Item(i))
        fRequest.Credentials = New NetworkCredential(username, psswd)
        fRequest.KeepAlive = False
        fRequest.Proxy = Nothing
        fRequest.UsePassive = True
        fRequest.UseBinary = True
        fRequest.Method = WebRequestMethods.Ftp.DownloadFile
        fRequest.Timeout = 30000

        Try
            ' read in file...

            ' upload file...
            Dim fresponse As FtpWebResponse = DirectCast(fRequest.GetResponse(), FtpWebResponse)
            Dim fstream As FileStream = fileobj.OpenRead()
            Dim sStream As Stream = fRequest.GetRequestStream()

            Dim reader As New StreamReader(fstream)
            swriter.WriteLine(reader.ReadToEnd)
            swriter.Flush()
            fstream.Close()
            fRequest.Abort()



        Catch ex As Exception
            appLogs.constructLog(ex.Message.ToString & " @ ", True, True)
            errorReporting(ex.Message.ToString & fileItem)
        End Try
    Next

    swriter.Close()
    swriter.Dispose()

【问题讨论】:

    标签: vb.net visual-studio-2010 ftpwebrequest


    【解决方案1】:

    下面确实有效,我终于可以上传 10gb + 文件

                Dim bytesread As Byte = 0
                Dim buffer As Integer = 2
                Dim fRequest As FtpWebRequest = WebRequest.Create(UPloaddir & "/" & filenameup & ".bak")
                ' fRequest.Credentials = New NetworkCredential(username, psswd)
                fRequest.KeepAlive = False
                fRequest.Proxy = Nothing
                fRequest.UsePassive = True
                fRequest.UseBinary = False
                fRequest.Method = WebRequestMethods.Ftp.UploadFile
                fRequest.Timeout = 180000
    
                '   Try
                ' read in file...
                Dim fs As FileStream = File.OpenRead(folder & "\" & fi.Name)
                Dim bFile As Byte() = New Byte(1) {}
                Dim fstream As Stream = fRequest.GetRequestStream
                ' upload file...
                Do
                    bytesread = fs.Read(bFile, 0, buffer)
                    fstream.Write(bFile, 0, bFile.Length)
                Loop Until bytesread = 0
                fstream.Close()
                fstream.Dispose()
    

    【讨论】:

      【解决方案2】:
         Dim filename As String = fileobj.Name
          Dim bytesread As Integer = 0
          Dim buffer As Integer = 8100
      
          Dim fRequest As FtpWebRequest = WebRequest.Create(ftpPath & "/Logs/" & filename)
          fRequest.Credentials = New NetworkCredential(username, psswd)
          fRequest.KeepAlive = False
          fRequest.Proxy = Nothing
          fRequest.UsePassive = True
          fRequest.UseBinary = False
          fRequest.Method = WebRequestMethods.Ftp.UploadFile
          fRequest.Timeout = 180000
      
          Try
              ' read in file...
              'Dim reader As New StreamReader(fileItem)
              Dim fs As FileStream = File.OpenRead(fileItem)
              Dim bFile As Byte() = New Byte(8100) {}
              Dim fstream As Stream = fRequest.GetRequestStream
              ' upload file...
              Do
                  bytesread = fs.Read(bFile, 0, buffer)
                  fs.Read(bFile, 0, buffer)
                  fstream.Write(bFile, 0, bFile.Length)
              Loop Until bytesread = 0
              fstream.Close()
              fstream.Dispose()
      
          Catch ex As Exception
              appLogs.constructLog(ex.Message.ToString & " @ ", True, True)
              errorReporting(ex.Message.ToString & fileItem)
          End Try
      

      分块上传。

      【讨论】:

        猜你喜欢
        • 2017-07-13
        • 1970-01-01
        • 1970-01-01
        • 2019-12-03
        • 1970-01-01
        • 1970-01-01
        • 2017-07-13
        • 2016-06-22
        • 1970-01-01
        相关资源
        最近更新 更多