[ Pjer_Nis @ 06.08.2007. 10:46 ] @
Dakle imam potrebu da podignem fajl na FTP server iz desktop aplikacije koju radim u C# 2005. Kod je sledeci: public void uploadFile(string LocalDir, string fileName, string RemoteDir) { try { lbByteDWNL.Text = String.Empty; lbByteDWNL.Update(); fileName = fileName.Trim(); string fullFilePath = String.Format("ftp://{0}//{1}//{2}", "xxx.xxx.xxx.xxx", RemoteDir, fileName).Trim(); FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFilePath); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential("username", "password"); StreamReader sourceStream = new StreamReader(LocalDir + fileName); 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(); MessageBox.Show(response.StatusDescription); response.Close(); } catch { MessageBox.Show("Neuspelo"); } } I to "radi", odnosno podigne fajl, ali se njegova duzina razlikuje od originala. Na primer, kada podignem jpg fajl od 62.682 bajta, on je gore 108.570 bajtova, i kada ga skinem nazad, ne moze da se otvori kao slika. Koliko sam uspeo da skontam, problem je u liniji byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); ali i kada imesto UTF8 stavim druge vrednosti, ili default, isti je problem samo je velicina fajla razlicita, ali nikad nije kako treba. Ima li neko neku ideju? |