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

  • 相关阅读:
    Delphi StrUtils-字符串函数RightStr、MidStr、LeftStr
    Delphi 错误:Could not convert variant to type(Null) into type (String)
    Delphi Variants-VarIsEmpty、VarIsNull 判断Variant变量是否为空、是否包含Null值
    Python使用openpyxl读写excel文件
    CentOS7设置为局域网固定ip
    Linux下ps aux命令中STAT的参数含义(转)
    Python生成8位随机字符串的方法分析
    php源码加密方法详解
    普通程序员 与 大牛 的区别 ???
    开始记录前端学习过程中的点点滴滴
  • 原文地址:https://www.cnblogs.com/NetPig/p/2096802.html
Copyright © 2011-2022 走看看