Problematyczny login FTP

0

Witam, napisałem prostą funkcję wysyłającą zdjęcie na serwer. Problem pojawia się gdy w loginie wpisze się znak @.
Przykładowo loginem jest [email protected]

Pomożecie mi ominąć ten problem? Może jakaś funkcja zamieniająca znaczek @ na jakiś ciąg który jest rozpoznawany jako @?

private bool uploadFileToFtp(string FTPAddress, string remoteFilePath, string username, string password, string filePath)
        {
            try
            {
                FileStream stream = File.OpenRead(remoteFilePath);
                byte[] buffer = new byte[stream.Length];

                stream.Read(buffer, 0, buffer.Length);
                stream.Close();

                FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create("ftp://" + FTPAddress +"/images/"+ imageFolderName + Path.GetFileName(filePath));

                request.Method = WebRequestMethods.Ftp.UploadFile;
                request.Credentials = new NetworkCredential(username, password); //tutaj wywala mi błąd...
                request.UsePassive = true;
                request.UseBinary = true;
                request.KeepAlive = false;

                Stream reqStream = request.GetRequestStream();
                reqStream.Write(buffer, 0, buffer.Length);
                reqStream.Close();

                return true;
            }
            catch
            {
                return false;
            }
        }

0

Spróbuj zamienić @ na %40 albo na znak +.

0

Niestety nie działa...

0

Chyba wybitnie nie chcesz żadnej pomocy, skoro nie byłeś łaskaw nawet podać o jaki wyjątek chodzi.

0
somekind napisał(a)

Chyba wybitnie nie chcesz żadnej pomocy, skoro nie byłeś łaskaw nawet podać o jaki wyjątek chodzi.

System.Net.WebException: Serwer zdalny zwrcił błąd: (550) Plik niedostępny (np. nie znaleziono pliku, brak dostępu).
w System.Net.FtpWebRequest.SyncRequestCallback(Object obj)
w System.Net.FtpWebRequest.RequestCallback(Object obj)
w System.Net.CommandStream.InvokeRequestCallback(Object obj)
w System.Net.CommandStream.Abort(Exception e)
w System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage)
w System.Net.FtpWebRequest.GetRequestStream()
w Project.Form1.uploadFileToFtp(String FTPAddress, String remoteFilePath, String username, String password, String filePath) w C:\Documents and Settings\ViX\Pulpit\Project\Project\Form1.cs:wiersz 72

Problem wygląda jakby nie escape'ował znaku @ przy oddzielaniu loginu od nazwy serwera (login@koniec_loginu@domena)
Dodam, że w momencie gdy w loginie nie ma znaku @ funkcja działa dobrze...

0

Czyżby nie było nikogo kto mógłby pomóc? :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1