vb.net上传文件到FTP服务器

上传文件到ftp服务器整理:

  声明:以下代码为vb.net代码,使用Visual Studio 2008开发,所有代码均通过测试,可以直接使用。欢迎转载,请注明出处,欢迎拍砖。

web.config 文件配置, 将用户名,密码和ftp服务器的地址存放到web.config文件:

 

    <appSettings>
    <add key="UserName" value="superuser"/>
        <add key="PassWord" value="Super2011"/>
        <add key="CompleteFTPPath" value="ftp://10.158.168.167/"/>
    </appSettings>

文件上传步骤:

  1.读取文件到一个FileStream

  2.设置ftp服务器访问信息,主要是ftp服务器地址,访问ftp服务器的用户名和密码,访问类型,等待时间等待。

  3.在ftp服务器中创建一个空的文件

  3.将源文件读取到byte()数组中

  4.将byte()数组中存放的数据写入到另外一个Stream, 这个stream是我们刚在ftp服务器上创建的空文件

  5.完成写入

以下是文件上传代码:

'''<summary>
    ''' upload txt file to specified destination.
    '''</summary>
    '''<remarks></remarks>
    Private Sub uploadFileByFTP()
        'is uploaded
        Dim isUploaded As Boolean = False
        'File path
        Dim fi As New FileInfo(Server.MapPath(".").ToString & "\TestFileFolder\" & strFileName)
        'Create a file in the ftp file server
        Dim reqObj As System.Net.FtpWebRequest
        reqObj = DirectCast(System.Net.WebRequest.Create(ConfigurationManager.AppSettings("CompleteFTPPath") & fi.Name), System.Net.FtpWebRequest)
        'Configure the request methods as uploadfile
        With reqObj
            .Credentials = New Net.NetworkCredential(ConfigurationManager.AppSettings("UserName"), ConfigurationManager.AppSettings("PassWord"))
            .Method = WebRequestMethods.Ftp.UploadFile
            .UseBinary = True
            .ContentLength = fi.Length
            .Timeout = 10 * 1000
        End With
        Try
            Using fsSource As FileStream = New FileStream(Server.MapPath(".").ToString & "\NameplateFile\" & strFileName, FileMode.Open, FileAccess.Read)
                ' Read the source file into a byte array.
                Dim bytes() As Byte = New Byte((fsSource.Length) - 1) {}
                ' Get the length of the source file
                Dim numBytesToRead As Integer = CType(fsSource.Length, Integer)
                Dim numBytesRead As Integer = 0

                While (numBytesToRead > 0)
                    ' Read may return anything from 0 to numBytesToRead.
                    Dim n As Integer = fsSource.Read(bytes, numBytesRead, _
                        numBytesToRead)
                    ' Break when the end of the file is reached.
                    If (n = 0) Then
                        Exit While
                    End If
                    numBytesRead = (numBytesRead + n)
                    numBytesToRead = (numBytesToRead - n)
                End While
                numBytesToRead = bytes.Length
                ' Write the byte array to the ftp file server
                Using fsNew As System.IO.Stream = reqObj.GetRequestStream()
                    fsNew.Write(bytes, 0, numBytesToRead)
                    isUploaded = True
                End Using
            End Using
      ' upload successfully 
       File.Delete(Server.MapPath(".").ToString & "\TestFileFolder\" & strFileName)
            If isUploaded = True Then
                lblMsg.Text = "File uploaded successfully!"
            Else
                lblMsg.Text = ""
            End If
        Catch ex As Exception
            Throw ex
        End Try
    End Sub


 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值