FTP URI

Deutschsprachiges X#-Forum – German language forum

Moderator: wriedmann

Post Reply
lagraf
Posts: 530
Joined: Thu Jan 18, 2018 9:03 am
Location: A

FTP URI

Post by lagraf »

Hallo,
ich habe aus dem Internet ein C# Beispiel zum passiven FileTransfer, das ich nach X# umschreiben und in meinen Apps verwenden möchte:

Code: Select all

using System;
using System.IO;
using System.Net;

public class Program
{
	static void Main()
	{
		FtpClientPassive ftp = new FtpClientPassive();
		ftp.UploadFile("https://dt9qzg9h465rt.cloudfront.net/c:\\tmp\\misc\\lagraf.jpg", "rachbauer.org", "user", "pass");
	}
}


public class FtpClientPassive
{
    public void UploadFile(string localPath, string ftpUrl, string username, string password)
    {
        try
        {
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpUrl);
            ...
Beim Ausführen vom WebRequest erhalte ich die Meldung "Invalid URI: The Format of the URI could not be determined".
Wie muss ich den Server angeben, habe schon verschiedene Varianten probiert, aber keine funktioniert.
LG
User avatar
wriedmann
Posts: 4079
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Re: FTP URI

Post by wriedmann »

Hallo Franz,
https:// und ftp? Außerdem steht das https im Namen der lokalen Datei drin, geht IMHO so nicht.
Mir scheinen da die Parameter vertauscht zu sein, und der zweite Parameter (ftpUrl "rachbauer.org") enthält kein URI-Kürzel wie z.B. ftp:.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
lagraf
Posts: 530
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Re: FTP URI

Post by lagraf »

Hallo Wolfgang,
keine Ahnung was das Forum da macht!

Der Code, den ich gepostet habe lautet in dieser Zeile:
... ("c:\\tmp\\misc\\lagraf.jpg", "rachbauer.org", "user", "pass");
Wenn ich mein Post editiere, steht auch nur das drin.
Ich muss den ftp.UploadFile weglassen, sonst kommt immer der zusätzliche Text automatisch dazu!
Der Code https://dt9qzg9h465rt.cloudfront.net/ stammt nicht von mir.

Ich habs aber auch schon mit ftp://rachbauer.org, ftp.rachbauer.org, usw probiert, geht alles nicht.

LG
User avatar
wriedmann
Posts: 4079
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Re: FTP URI

Post by wriedmann »

Hallo Franz,
korrekt sollte
ftp://rachbauer.org
sein, wenn Dein Server unter rachbauer.org erreichbar ist.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
lagraf
Posts: 530
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Re: FTP URI

Post by lagraf »

Hallo Wolfgang,
das habe ich auch schon probiert, Fehler:
The requested URI is invalid for this FTP command bei Zeile using (Stream requestStream = request.GetRequestStream())

Code: Select all

public class FtpClientPassive
{
    public void UploadFile(string localPath, string ftpUrl, string username, string password)
    {
        try
        {
            // 1. FtpWebRequest erstellen
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpUrl);
            request.Method = WebRequestMethods.Ftp.UploadFile;
            request.Credentials = new NetworkCredential(username, password);

            // 2. PASSIVER MODUS aktivieren (Standard ist true)
            request.UsePassive = true; 
            request.KeepAlive = false; // Verbindung nach Transfer schließen
            request.UseBinary = true;  // Binärdateiübertragung

            // 3. Datei lesen und übertragen
            byte[] fileContents = File.ReadAllBytes(localPath);
            request.ContentLength = fileContents.Length;

            using (Stream requestStream = request.GetRequestStream())
            {
                requestStream.Write(fileContents, 0, fileContents.Length);
            }

            // 4. Antwort erhalten
            using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
            {
                Console.WriteLine("Upload Status: {0}", response.StatusDescription);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Fehler: {0}", ex.Message);
        }
    }
}
gerdh
Posts: 2
Joined: Mon Nov 02, 2015 2:46 pm

Re: FTP URI

Post by gerdh »

Hallo Franz,


übergibst Du bei ftpUrl denn auch den Zieldateinamen, also z.B. "ftp://meinserver.org/test.txt"? Der muss bei der Methode UploadFile m.W. schon mit angegeben werden.


Gruß
Gerd
lagraf
Posts: 530
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Re: FTP URI

Post by lagraf »

Hallo Gerd,
das habe ich vor ein paar Minuten auch herausgefunden, damit klappt es jetzt!
LG
Post Reply