Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    20

    [C#] Inviare un file ad un server ftp con autenticazione

    Salve, io avrei bisogno di inviare un file zip ad un server ftp con autenticazione.

    Ho provato con il seguente codice preso dal sito msdn:
    codice:
    public static void Upload(string NomeFile, string Indirizzo, string User, string Password)
            {
                // Get the object used to communicate with the server.
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(Indirizzo);
                request.Method = WebRequestMethods.Ftp.UploadFile;
    
                // This example assumes the FTP site uses anonymous logon.
                request.Credentials = new NetworkCredential(User, Password);
    
                // Copy the contents of the file to the request stream.
                StreamReader sourceStream = new StreamReader(NomeFile + ".zip");
                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();
    
                response.Close();
            }
    Mi da errore sulla riga Stream requestStream = request.GetRequestStream(); dicendomi URI richiesto non valido per questo comando FTP. Sinceramente non riesco a capire cosa voglia dire.

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Fai una ricerca su questo forum ... probabilmente trovi qualche suggerimento ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Le domande su Visual Basic e C# dispongono di una sezione dedicata.
    Sposto la discussione e invito ad aprire qui le domande relative a questi linguaggi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Ciao,

    ho fatto una video-guida che tratta proprio di questo argomento.

    Per vedere meglio devi impostare la massima risoluzione del video.

    http://www.youtube.com/watch?v=sbMX8F74IJM

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    20
    GhostFire, con il tuo suggerimento non mi da eccezioni strane ma nel server ftp mi mette un file PUT senza estensione...

    Forse è meglio che do un paio di dettagli in più:

    Io devo inviare un file zip che creo in automatico e che intanto mi va a finire nella cartella di debug. Quindi dove tu hai scritto FilePath messo txtNomeFile.Text + ".zip" ma ho provato a mettere anche tutto il percorso incluso il nome del file.

    Mi potresti aiutare?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Originariamente inviato da y.chen
    GhostFire, con il tuo suggerimento non mi da eccezioni strane ma nel server ftp mi mette un file PUT senza estensione...

    Forse è meglio che do un paio di dettagli in più:

    Io devo inviare un file zip che creo in automatico e che intanto mi va a finire nella cartella di debug. Quindi dove tu hai scritto FilePath messo txtNomeFile.Text + ".zip" ma ho provato a mettere anche tutto il percorso incluso il nome del file.

    Mi potresti aiutare?
    Nel filepath va inserita la path del percorso del file da caricare, quindi:

    c:\blablabla\myfile.zip

    Per quanto ne sappia e dopo parecchie ricerche ho concluso che una volta uppato deve essere rinominato.

    I passaggi da fare sarebbero questi:

    -Crei il file
    -Carichi il file immediatamente dopo la creazione
    -Rinomini il file.

    Questo è il codice che ho fatto per rinominarlo.

    codice:
      private void RenameFile()
            {
    
                reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(URLupload + "STOR"));
                reqFTP.Method = WebRequestMethods.Ftp.Rename;
                reqFTP.RenameTo = "Myname" + ".zip";
                reqFTP.UseBinary = true;
                reqFTP.Credentials = new NetworkCredential(username, password);
                FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                ftpStream = response.GetResponseStream();
                ftpStream.Close();
                response.Close();
    
            }
    URLupload corrisponde alla cartella in cui è stato uppato il file mentre "STOR" corrisponde al nome del file che si trova all'interno del percorso assegnato.

    al posto di MyName ci metti il tuo nome e poi sotto dichiari username password e tutto il resto...

    infine richiami questa funzione subito dopo quella per l'upload.

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.