none
Загрузка файла с сервера RRS feed

  • Вопрос

  • Добрый вечер. Есть программка, которая устанавливается на компьютере клиента. Вот код, который загружает файл, который должен быть установлен на компе клиента. Но это не правильно. Другими словами, что-то не получается установить путь, чтобы закачка файла происходила с сервера, тоесть с другого компа.

    private void btnOpenAFS_Click(object sender, EventArgs e)
        {
          
          try
          {
            //Используем оболочку операционной системы для запуска процесса
            info.UseShellExecute = true;
            //Команда <Open> для открытия документа
            info.Verb = "Open";
            //Имя открываемого документа
            info.FileName = cboAFSview.Text + ".pdf";
            //Полное имя каталога
            info.WorkingDirectory = Application.StartupPath + "\\Info\\Бюллетени";
            //Запускает ресурс процесса путем указания имени документа или файла приложения и 
            //связывает ресурс с новым компонентом System.Diagnostics.Process.
            Process.Start(info);
          }
          catch (Exception ex)
          {
            Console.WriteLine(ex.Message);
            cboAFSview.BackColor = Color.Yellow;
            btnOpenAFS.Enabled = false;
            MessageBox.Show("Нет такого бюллетеня");
          }
          tmrAFS.Enabled = true;
        }//btnOpenAFS_Click
    

     

    8 июня 2011 г. 14:05

Ответы

  • Дай доступ к папке пользователю "ВСЕ", тогда пароль не нужно будет вводить. Или, если компьютеры в домене, то группе в которой находится пользователь с правами которого запускается программа на клиенте.
    • Помечено в качестве ответа hochuznat 16 июня 2011 г. 8:31
    14 июня 2011 г. 8:33
    Модератор

Все ответы

  • В info.FileName пишется полный путь до файла на удаленном компьютере?
    Все должно быть просто, очень просто, настолько просто, насколько это возможно.
    8 июня 2011 г. 14:35
  • у того юзера под которым работает програмка должный быть достаточные права доступа к этому пути
    Don't forget to vote for useful replies and/or mark answers for your questions - that helps other guys to find the answer faster.
    8 июня 2011 г. 20:09
  • Хороший ответ. Тут я понимаю рассматривается политика безопасности. Да необходимо обезопасить информацию от воровства. Я понимаю это так, что exe-файл должен быть на компе клиента, а все остальное, скажим на моем компе. Я с Вами согласен по поводу прав доступа. Но первое что меня интересует, так это написать путь к моему компу. Как? Первое что приходит в голову это таким образом -  IP-адрес\C:\Documents and Settings\User\Рабочий стол. Так ли это?

    Вы написали достаточно прав доступа, а что разве клиент-сервер приложение не так строиться? И если что-то не так, то буду благодарен за информацию как построить клиент-сервер.

    Заранее спасибо.

  • Чтобы открывать с сетевой шары, нужно указывать ее путь. Сейчас ты открываешь из подпапки относительно запускаемого файла

    info.WorkingDirectory = Application.StartupPath + "\\Info\\Бюллетени";

    А нужно указывать путь в сети

    info.WorkingDirectory = @"\\servername\Info\Бюллетени";

    Модератор
  • Спасибо за ответ. Но что-то не допонимаю.

    info.WorkingDirectory = @"\\servername\Info\Бюллетени"

    В этой строке servername - это адрес через IP - 192.168.x.xx, и что дальше будет найдена нужная папка т.е. Бюллетени

    Наверное я некорректно задал тему. Я имел ввиду узнать месторасположение папки на другом компьютере.

    9 июня 2011 г. 11:00
  • 1. Папка на сервере должна быть расшарена.

    2. Перебирай все шары на сервере и выбирай, какая твоя.

    Да, и WokingDirecotry я, пожалуй, махнул...

    Лучше полный путь указать в пути к файлу:

    info.FileName = @"\\servername\path\" + cboAFSview.Text + ".pdf";

    10 июня 2011 г. 4:21
    Модератор
  • Добрый день. Катаю шары уже полдня. Пока не закатил ни одного. Спасибо за ссылку. Решил немножко упростить себе жизнь. Написал вот это

    info.FileName = @"C:\Info\Бюллетени\" + cboAFSview.Text + ".pdf";

    Все это работает на моем локальном компе.  Прописал вот это

    info.FileName = @"\\192.168.х.хх\C:\Info\Бюллетени\" + cboAFSview.Text + ".pdf";

    Скомпилировал, установил на другой комп не работает. Не видит этого пути.

     

    10 июня 2011 г. 10:38
  • info.FileName = @"\\192.168.х.хх\C:\Info\Бюллетени\" + cboAFSview.Text + ".pdf";

    Не нужно указывать "C:\"

    Тебе нужно открыть на своем компе общий доступ к папке C:\Info (имя для ресурса указать Info) и полсле этого использовать info.FileName = @"\\192.168.х.хх\Info\Бюллетени\" + cboAFSview.Text + ".pdf";

    Где 192.168.х.хх - IP твоего компьютера.

     

     

     

     


    10 июня 2011 г. 10:56
    Модератор
  • Все как по написанному. Даже специально открыл доступ на диске D в папку Info. На моем работает, а с другого нет. Уфффф.....

    10 июня 2011 г. 11:52
  • С другого компа можно подключить сетевым диском расшареную папку?
    12 июня 2011 г. 9:26
    Модератор
  • Добрый день. Пишу чтобы не молчать. Возможная проблема в прошлом моем ответе. Доступ к папке D:\ я то предоставил, но дело в том что у меня тоже не так много прав. Папка Info у меня в общем доступе, но через логин и пароль. И я думаю в этом проблема. Если это так, то мне необходимо предоставить доступ пользователям через этот логин и пароль или как-то можно это обойти? Как быть?

    Спасибо.

    14 июня 2011 г. 7:44
  • Дай доступ к папке пользователю "ВСЕ", тогда пароль не нужно будет вводить. Или, если компьютеры в домене, то группе в которой находится пользователь с правами которого запускается программа на клиенте.
    • Помечено в качестве ответа hochuznat 16 июня 2011 г. 8:31
    14 июня 2011 г. 8:33
    Модератор
  • Уважаемый пользователь.

    Если ваша проблема решена - то, пожалуйста, отметьте те ответы, в которых содержится решение. Для этого под каждым сообщением есть кнопка 'Пометить как ответ'. Спасибо.


    Для связи [mail]
    15 июня 2011 г. 15:06
  • "У того юзера под которым работает програмка должный быть достаточные права доступа к этому пути"

    Добрый день. Извиняюсь за молчание. Проблема решилась вчера вечером. Ну к делу.  У нас есть рабочая группа в несколько десятков компов. Я один из них. Мой компьютер выступает в качестве сервера для этой программы. Да при установке на другой комп программка работала, но доступ к ресурсам, типа файлы или картинки был запрещен. Почему? У меня как и других доступ к другому компу по сетевому окружению через логин и пароль. Естественно и к этой папке нет доступа, даже если ее сделать общедоступной. Другими словами через эту строку загрузка картинки или файла не получалась.

    info.FileName = @"\\192.168.х.хх\Info\Бюллетени\" + cboAFSview.Text + ".pdf";

    Выход из этого положения нашел следующим образом. Создал на своем компе еще одну учетную запись с правами просмотра этой папки только чтение. Папка, в данном случае Info. должна находиться в общем доступе.

    Все это работает только в локальной рабочей группе, для этого и создавалась учетная запись. Естественно все это делается для того, чтобы не чистые на руку пользователи не смогли скопировать информацию. Надеюсь все это понимают. Код для загрузки картинки у меня выглядит таким образом, вот строка

    picture.Image =

    Image.FromFile(@"\\192.168.x.xx\Info\Картинка\" + num + ".tif"); где num - имя картинки.

    Остается для этой темы проблема следующая - Как загрузить картинку на компьютер, который не входит в нашу рабочую группу.

    Если есть ссылки на этот вопрос, пожалуйста укажите или напишите что-нибудь.


    16 июня 2011 г. 8:31