Das Hochladen von Dateien auf FTP ist einmal im Ziel beschädigt
Ich erstelle eine einfache Drag-File-und-Upload-automatisch-zu-FTP-Windows-Anwendung
und ich benutze dieMSDN-Code um die Datei auf den FTP-Server hochzuladen.
Der Code ist ziemlich einfach:
<code>// Get the object used to communicate with the server. FtpWebRequest request = (FtpWebRequest)WebRequest.Create(String.Format("{0}{1}", FTP_PATH, filenameToUpload)); request.Method = WebRequestMethods.Ftp.UploadFile; // Options request.UseBinary = true; request.UsePassive = false; // FTP Credentials request.Credentials = new NetworkCredential(FTP_USR, FTP_PWD); // Copy the contents of the file to the request stream. StreamReader sourceStream = new StreamReader(fileToUpload.FullName); 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(); writeOutput("Upload File Complete!"); writeOutput("Status: " + response.StatusDescription); response.Close(); </code>
undes tut auf den FTP hochgeladen werden
Das Problem ist Wenn ich die Datei in einem Browser sehe oder einfach herunterlade und versuche, sie auf dem Desktop anzuzeigen, erhalte ich:
Habe ich schon benutztrequest.UseBinary = false;
undrequest.UsePassive = false;
aber es schadet nicht, irgendetwas Gutes zu tun.
Was ich herausgefunden habe war das, die ursprüngliche Datei hat 122Kb Länge und im FTP (und nach dem Download) hat es 219Kb ...
Was mache ich falsch?
Übrigens, dieuploadFileToFTP()
Methode läuft in einemBackgroundWorker
, aber ich weiß nicht wirklich, was einen Unterschied macht ...