none
Ftp и Webbrowser RRS feed

  • Вопрос

  • Здравствуйте!

    Есть Ftp сервер и я получаю список файлов в определеной папке(*.html),как мне засунуть эти файлы в браузер,если нужна авторизация на сервере?

    Ниже код по получению списка файлов,логин и пароль от сервера знаю

     FtpWebRequest requestDir = (FtpWebRequest)WebRequest.Create(path);
                requestDir.Method = WebRequestMethods.Ftp.ListDirectory;
                requestDir.Credentials = new NetworkCredential(log,pas);
                FtpWebResponse responseDir = (FtpWebResponse)requestDir.GetResponse();
                StreamReader readerDir = new StreamReader(responseDir.GetResponseStream());

Ответы

  • Оk,

    сначала попробуем из консоли:

    FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(uri);
    ftpRequest.Credentials =new NetworkCredential("User","Password");
    ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
    FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
    StreamReader streamReader = new StreamReader(response.GetResponseStream());
    
    List<string> directories = new List<string>();
    
    string line = streamReader.ReadLine();
    while (!string.IsNullOrEmpty(line))
    {
        directories.Add(line);
        line = streamReader.ReadLine();
    }
    
    streamReader.Close();
    foreach(var x in directories)
    {
        Console.WriteLine(x)
    }

    Отпишитесь о результате. Как заработает, вставим в wpf.

    Успехов.



    • Изменено Maxim Shusharin 30 мая 2014 г. 8:30
    • Помечено в качестве ответа xero-rock 30 мая 2014 г. 12:38
  • Ну поднимите локальный ftp-сервер, поработайте с ним.

    Как вариант:

    free:free@ftp.zakupki.gov.ru
    

    Можете на нем потренироваться :)

    • Помечено в качестве ответа xero-rock 30 мая 2014 г. 12:38

Все ответы

  • "как мне засунуть эти файлы в браузер" - что значит "засунуть", попробуйте объяснить более внятно.

    Сделаем содержимое сообщества лучше, вместе!

    Модератор
  • webbrowser.navigate(new Uri(path));
  • Ну и что это? Написать развёрнуто лень :).

    Сделаем содержимое сообщества лучше, вместе!

    Модератор
  • в path у меня ссылка на файл html, вопрос в том чтобы браузер смог открыть файл на ftp сервере где требуется авторизация))
  • Чтобы на ftp сервере открыть файл из браузера (а он использует HTTP), то на сервре (машина) с FTP должен быть и сервер (программа) HTTP, например IIS, если это винда.

    Сделаем содержимое сообщества лучше, вместе!

    Модератор
  • Спасибо)мне нужно в браузере открыть файл с ftp сервера
    • Изменено xero-rock 30 мая 2014 г. 7:15
  • Опишите решаемую задачу более подробно, возможно стоит подойти к её решению с другой стороны.

    Я бы соединился с ftp-сервером консольной утилитой, выкачал (синхронизировал) требуемые папки (файлы), а далее обработал их уже как обычные файлы. Просто и быстро.

  • я пишу скринсевер,при запуске вызывается метод который собирает через FtpWebRequest имена файлов html.Далее запускается таймер и каждые 5 сек должен сменять в webbrowsere(wpf) страницу из списка файлов,которые на ftp хранятся.

    Проблема в том что,не уверен что браузер сможет открыть файл,который лежит на ftp,где требуется авторизация. В папке могут быть нужные файлы(jpeg и тд),которые нужны для корректного отображения страницы в браузере


    • Изменено xero-rock 30 мая 2014 г. 7:33
  • Оk,

    сначала попробуем из консоли:

    FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(uri);
    ftpRequest.Credentials =new NetworkCredential("User","Password");
    ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
    FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
    StreamReader streamReader = new StreamReader(response.GetResponseStream());
    
    List<string> directories = new List<string>();
    
    string line = streamReader.ReadLine();
    while (!string.IsNullOrEmpty(line))
    {
        directories.Add(line);
        line = streamReader.ReadLine();
    }
    
    streamReader.Close();
    foreach(var x in directories)
    {
        Console.WriteLine(x)
    }

    Отпишитесь о результате. Как заработает, вставим в wpf.

    Успехов.



    • Изменено Maxim Shusharin 30 мая 2014 г. 8:30
    • Помечено в качестве ответа xero-rock 30 мая 2014 г. 12:38
  • Спасибо,у меня примерно такой же код.к сожалению мне дали задание а адрес ftp не дали...в общем все в теории

  • Ну поднимите локальный ftp-сервер, поработайте с ним.

    Как вариант:

    free:free@ftp.zakupki.gov.ru
    

    Можете на нем потренироваться :)

    • Помечено в качестве ответа xero-rock 30 мая 2014 г. 12:38
  • Спасибо за сервер))получилось)Сейчас в wpf буду вставлять
  • в папке 94fz/ есть файлы *.log.Когда я скармливаю ссылку на файл браузеру то у меня открывается окно с авторизацией.Что мне дописать,чтобы браузер смог открыть файл без ввода авторизации?

    P.S. В моем случае это будут html файлы