es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Archivos cargados en el servidor ftp, ¿corruptos por qué?

Los archivos se están cargando correctamente pero con archivos corruptos. Por favor, revise mi código y arregle mi problema. Creo que mi problema está en esta línea:

byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());;

“`
string ftpurl = “ftp://IP”;
string ftpusername = “u09z0fyuu”; // por ejemplo, nombre de usuario
string ftppassword = “Yamankatita1@”; // por ejemplo, contraseña

        string PureFileName = new FileInfo(file_name).Name;
        String uploadUrl = String.Format("{0}/{1}/{2}", ftpurl, "PDPix", file_name);
        FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(uploadUrl);
        request.Method = WebRequestMethods.Ftp.UploadFile;
        // Este ejemplo asume que el sitio FTP utiliza inicio de sesión anónimo.  
        request.Credentials = new NetworkCredential(ftpusername, ftppassword);
        request.Proxy = null;
        request.KeepAlive = true;
        request.UseBinary = true;
        request.UsePassive = true;
        request.Method = WebRequestMethods.Ftp.UploadFile;

        // Copiar el contenido del archivo al flujo de solicitud.  
        StreamReader sourceStream = new StreamReader(_mediaFile.Path);
        byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());;
        sourceStream.Close();
        request.ContentLength = fileContents.Length;
        Stream requestStream = request.GetRequestStream();
        requestStream.Write(fileContents, 0, fileContents.Length);
        requestStream.Close();
        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
        _ = DisplayAlert("Subir archivo completo, estado {0}", response.StatusDescription,"OK");
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Podría haber un problema con la forma en que se están leyendo y convirtiendo los contenidos del archivo en bytes. Intente usar un método diferente para leer los contenidos del archivo, como FileStream o MemoryStream, y luego conviértalo en bytes. Por ejemplo:

    byte[] fileContents;
    using (FileStream fs = new FileStream(_mediaFile.Path, FileMode.Open, FileAccess.Read))
    {
        using (BinaryReader br = new BinaryReader(fs))
        {
            fileContents = br.ReadBytes((int)fs.Length);
        }
    }
    

    Además, asegúrese de que la codificación utilizada para convertir los contenidos del archivo en bytes sea apropiada para el tipo de archivo que se está cargando (por ejemplo, UTF8 podría no funcionar para archivos binarios).

Comments are closed.