Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C# FTP Dateien uploaden

Empfohlene Antworten

Hallo liebes Forum,

habe ein Problem beim Dateiupload zum FTP-Server..

Die erste Datei wird richtig geladen, nur ab der zweiten Datei bekomme ich dann folgende Fehlermeldung:

BeginGetRequestStream/BeginGetResponse kann nicht erneut aufgerufen werden, wenn ein vorheriger Aufruf noch verarbeitet wird.

bei System.Net.FtpWebRequest.GetRequestStream()

bei AutoUpdate.FTP.FTP.Upload(String folder, String filename, String quelle)}

Ich finde einfach keine Lösung für das Problem, eigentlich müsste es ja funktionieren, da ich ja mit requestStream.Close(); ihm ja eigentlich sage, dass der erste Stream zu Ende ist... Nur kapiert er das leider nicht.. ;)

Habe das dann auch mit request.EndGetRequestStream() versucht, aber geholfen hat's nicht...

Kann mir jemand sagen, was ich falsch mache?!

:upps

MfG,

Seba89

Hier noch mein Code:

try

            {

                // Pfad zur neuen Datei

                string ftp = "ftp://" + m_Server + "/" + folder + "/" + Path.GetFileName(filename);


                // FtpWebRequest initialisieren

                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(ftp));


                // Steuerungsverbindung nicht schließen

                request.KeepAlive = false;


                // Methode auswählen (hier UploadFile)

                request.Method = WebRequestMethods.Ftp.UploadFile;


                // Benutzername und Passwort übergeben

                request.Credentials = new NetworkCredential(m_User, m_Password);


                // Verbindung überprüfen

                WebResponse response = request.GetResponse();


                foreach (string file in Directory.GetFiles(quelle))

                {

                    FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);

                    byte[] fileContents = new byte[fs.Length];

                    fs.Read(fileContents, 0, Convert.ToInt32(fs.Length));

                    fs.Flush();

                    fs.Close();


                    // Stream zum FTP aufbauen

                    Stream requestStream = request.GetRequestStream();


                    // Datei via Stream schreiben

                     requestStream.Write(fileContents, 0, fileContents.Length);


                    // Stream beenden

                    requestStream.Close();

                 }


                // Verbindung beenden

                request.Abort();


                return true;

            }


            catch (Exception exp)

            {

                return false;

            }

Okay das habe ich soweit in den Griff bekommen.

Nun habe ich aber noch eine Frage an alle.

Wie schaffe ich es eine Datei in Teilen zu uploaden, da meine Datei mit 1,8mb zu groß ist...

Kann mir jemand helfen?

Mfg

Bei der Datei nach 1:50min:

Die zugrunde liegende Verbindung wurde geschlossen: Unbekannter Fehler beim Empfangen..

Da der Server die Verbindung unterbricht und alle anderen Dateien die kleiner sind geladen werden können, denke ich das es gehen müsste, wenn die datei in parts geuploaded wird.

MfG

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.