Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Vb.NET] upload ftp con progress di un file pesante

    Salve,
    ho un problema con il mio codice per l'upload di file in ftp...

    Il file pesa 15MB (in particolare 15.613.032 byte), il codice di seguito mi uppa perfettamente il file ma si mangia 32 byte (uppa un file di 15.613.000 byte)

    Ecco il codice:
    codice:
    Dim intChunk As Integer, intOffset As Integer
    Dim clsRequest As System.Net.FtpWebRequest
    
    clsRequest = DirectCast(System.Net.WebRequest.Create("ftp://cartellaftp"), System.Net.FtpWebRequest)
            clsRequest.Credentials = New System.Net.NetworkCredential("nomeutente", "password")
            clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
            clsRequest.UseBinary = True
            clsRequest.KeepAlive = False
    
    Dim bFile() As Byte = System.IO.File.ReadAllBytes(txtFile.Text)
    
            Dim clsStream As System.IO.Stream = clsRequest.GetRequestStream()
            intChunk = bFile.Length / 100
            pbUpload.Maximum = 100
            For I As Integer = 1 To 100
                If intOffset + intChunk > bFile.Length Then intChunk = bFile.Length - intOffset
                clsStream.Write(bFile, intOffset, intChunk)
                intOffset += intChunk
                pbUpload.Value = I
                Application.DoEvents()
            Next
            clsStream.Close()
            clsStream.Dispose()
    Mi potreste aiutare a trovare l'errore?

  2. #2
    Ho risolto

    La funzione Write dello stream accetta solo integer, quindi avendo fatto "diviso 100" alla grandezza del file, ottengo un valore decimale... mi è bastato calcolare la parte decimale rimanente, e dopo il ciclo accodare un write partendo dall'offset con valore ottenuto come lunghezza...ed il gioco è fatto

    In altre parole, prima del ciclo:
    dim virgola as integer = bFile.length - (intchuck * 100)

    e dopo il ciclo:
    clsStream.Write(bFile, intOffset, virgola)



Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.