Laden...

Ein Teil des Pfades “C:\Users\…“ konnte nicht gefunden werden. ???

Erstellt von gustavmega vor 9 Jahren Letzter Beitrag vor 9 Jahren 7.395 Views
G
gustavmega Themenstarter:in
78 Beiträge seit 2012
vor 9 Jahren
Ein Teil des Pfades “C:\Users\…“ konnte nicht gefunden werden. ???

Hallo,

ich möchte über Webservices in einem Silverlight-Projekt Dateien über OpenFileDialog per FTP hochladen und es klappt auch wunder bar, wenn ich es lokal ausführe aber wenn ich das Projekt auf dem Server veröffentliche bekomme leider dann die Fehlermeldung:

Ein Teil des Pfades “C:\Users\…“ konnte nicht gefunden werden.

private void button1_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "csv files (*.csv)|*.csv";

            if (dialog.ShowDialog() == true)
            {
                DataServiceClient upload = new DataServiceClient();
                upload.dateiUploadCompleted += (sender2, e2) =>
                {
                    MessageBox.Show(e2.Result);
                };
                upload.dateiUploadAsync(dialog.File.FullName, dialog.File.Name);
                txt_Adresse.Text = dialog.File.FullName;
                btn_Sch1.IsEnabled = true;
            }
        }

[OperationContract]
        public string dateiUpload(string pfad, string dateiName)
        {
            try
            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + “…/upload/" + dateiName);
                request.KeepAlive = false;
                request.Method = WebRequestMethods.Ftp.UploadFile;

                request.Credentials = new NetworkCredential(username, password);

                StreamReader sourceStream = new StreamReader(pfad);
                byte[] dateiInhalt = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
                sourceStream.Close();
                request.ContentLength = dateiInhalt.Length;

                Stream requestStream = request.GetRequestStream();
                requestStream.Write(dateiInhalt, 0, dateiInhalt.Length);
                requestStream.Close();

                FtpWebResponse response = (FtpWebResponse)request.GetResponse();

                response.Close();                

                return "OK";
            }

            catch (Exception exc)
            {
                return exc.Message;
            }
        }

Hat jemand vielleicht eine Idee, wie ich das Problem lösen kann?

Grüße,
G.M.

16.832 Beiträge seit 2008
vor 9 Jahren

So funktioniert ein Upload auch nicht.
Was Du machst ist dem Service mitteilen, wo sich die Datei auf dem Client befindet (pfad Parameter).
Der Server kennt den Pfad doch gar nicht bzw. würde er den Pfad auf seinem System suchen...

Du musst dem Server schon die ganze Datei geben, und nicht nur ein Pfad - ist doch logisch 😉

G
gustavmega Themenstarter:in
78 Beiträge seit 2012
vor 9 Jahren

oops, da hast Du vollkommen recht!
Und wie kann ich dem Server die ganze Datei geben?
Das ist auch genau das was ich machen will, die gewählte Datei auf dem Server hochladen!

Grüße,
G.M.

P
1.090 Beiträge seit 2011
vor 9 Jahren

google: c# Silverlight Datei Upload

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

16.832 Beiträge seit 2008
vor 9 Jahren

Verwendest Du Silverlight mit einem Webservice? Google-Suche nach c# silverlight upload file

D
233 Beiträge seit 2008
vor 9 Jahren

Grundsätzlich gibt es hierzu schon fertige Komponenten. Zu meinen Silverlight-Zeiten habe ich den Upload gelöst, indem ich den Dateiinhalt auf dem Client in ein Byte-Array konvertiert habe, diesen stückweise an einen Webservice gesendet habe und dieser hat den Stream anschließend wieder als Datei auf dem Server abgelegt. Also keine große Kunst.

File Upload in Silverlight

Hier findest du das ganze exemplarisch.

G
gustavmega Themenstarter:in
78 Beiträge seit 2012
vor 9 Jahren

@D-eath
SUPER, das funktioniert wunderbar, VIELEN DANK!
Ich habe wirklich alle mögliche Suchfragen eingegeben und leider hat nichts bei mir funktioniert aber wie gesagt das Beispiel auf der Seite funktioniert wunderbar 👍

Grüße,
G.M.