zoukankan      html  css  js  c++  java
  • VB.Net实现Ftp上传的方法

    调用方式:

    UploadFile("d:\lob.rar", False) '  2个参数分别为 准备上传的文件完整路径、是否续传

    功能函数:

     Public Sub UploadFile(ByVal Str_LocalFileName As String, ByVal Bool_Resume As Boolean)

            Dim LobSocket As Socket
            Dim offset As Long
            Dim input As FileStream
            Dim bFileNotFound As Boolean
            If (Not Logined()) Then  
                Logined()
            End If
            LobSocket = CreateDataSocket()
            offset = 0
            If (Bool_Resume) Then
                Try
                    SetBinaryMode(True)
                    offset = GetFileSize(Str_LocalFileName)
                Catch ex As Exception
                    offset = 0
                End Try
            End If
            If (offset > 0) Then
                SendCommand("REST " & offset)
                If (Int_Reply <> 350) Then
                    offset = 0
                End If
            End If
            SendCommand("STOR " & Path.GetFileName(Str_LocalFileName))
            Str_Reply = ServerReply(True)
            Int_Reply = Int32.Parse(Str_Reply.Substring(0, 3))
            If (Not (Int_Reply = 125 Or Int_Reply = 150)) Then
                MsgBox(Str_Reply.Substring(4))
            End If
            bFileNotFound = False
            If (File.Exists(Str_LocalFileName)) Then
                input = New FileStream(Str_LocalFileName, FileMode.Open)
                If (offset <> 0) Then
                    input.Seek(offset, SeekOrigin.Begin)
                End If
                Int_Bytes = input.Read(Byte_Buffer, 0, Byte_Buffer.Length)
                Do While (Int_Bytes > 0)
                    LobSocket.Send(Byte_Buffer, Int_Bytes, 0)
                    Int_Bytes = input.Read(Byte_Buffer, 0, Byte_Buffer.Length)
                Loop
                input.Close()
            Else
                bFileNotFound = True
            End If
            If (LobSocket.Connected) Then
                LobSocket.Close()
            End If
            If (bFileNotFound) Then
                MsgBox(Str_LocalFileName & "文件未找到,无法上传")
            End If
            Str_Reply = ServerReply(True)
            Int_Reply = Int32.Parse(Str_Reply.Substring(0, 3))
            If (Not (Int_Reply = 226 Or Int_Reply = 250)) Then
                MsgBox(Str_Reply.Substring(4))
            End If

        End Sub

        Public Function GetFileSize(ByVal sFileName As String) As Long

            Dim size As Long
            SendCommand("SIZE " & sFileName)
            size = 0
            Str_Reply = ServerReply(True)
            Int_Reply = Int32.Parse(Str_Reply.Substring(0, 3))
            If (Int_Reply = 213) Then
                size = Int64.Parse(Str_Reply.Substring(4))
            Else
                MsgBox(Str_Reply.Substring(4))
            End If
            Return size

        End Function

  • 相关阅读:
    AnyChart图表控件使用指南(四)
    AnyChart图表控件使用指南(五)
    路由器相关
    PHP 实现导出CSV格式文件
    Node.js与Golang使用感受与小结【一】
    Node.js与Golang使用感受与小结【三】JS异步流程控制(序列模式、并发模式、有限并发模式)
    Node.js与Golang使用感受与小结【二】
    js BOM操作
    新建 indexedDB 数据库并插入数据
    vue2项目中引用外部js文件
  • 原文地址:https://www.cnblogs.com/NetPig/p/2096802.html
Copyright © 2011-2022 走看看