Лучший способ хранения изображений на жестком диске сервера в приложении C # WinForm - PullRequest
0 голосов
/ 10 сентября 2018

Насколько я понимаю, хранение изображений непосредственно в базе данных SQL - не лучший способ. Особенно, когда их много с огромным пространством. Эксперты утверждают, что лучше просто вставить имя образа в БД и сохранить его на H-диске.

Итак, я написал несколько кодов, подобных приведенным ниже, которые сохраняют изображения на H-диске компьютера пользователя:

private void btnSave_Click(object sender, EventArgs e)
{
    string imageName = Guid.NewGuid().ToString() + Path.GetExtension(PicBoxCustomer.ImageLocation);
    string path = Application.StartupPath + "/Images/";

    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }

    PicBoxCustomer.Image.Save(path + imageName);

    Customers customers = new Customers()
            {
                Address = txtAddress.Text,
                Email = txtEmail.Text,
                FullName = txtName.Text,
                Mobile = txtMobile.Text,
                CustomerImage = imageName
            };

   if (customerId == 0)
   {
       db.CustomerRepository.InsertCustomer(customers);
   }
   else
   {
       customers.CustomerID = customerId;
       db.CustomerRepository.UpdateCustomer(customers);
   }

   db.Save();
}

Это хорошо работает для одного пользователя, но в реальной жизни в моей компании работает около 1300 сотрудников (пользователей), и я должен найти способ сохранения изображений со всех компьютеров пользователей на жестком диске сервера (не на каждом компьютер пользователя отдельно, чтобы иметь возможность показывать все изображения всем пользователям).

У меня есть два вопроса:

  1. Как передать (загрузить) изображения с ПК пользователя через интрасеть на сервер?
  2. Как изменить вышеуказанные коды для сохранения изображений на жестком диске сервера вместо компьютера пользователя?

Я использую технологию LINQ (DataContext) с шаблоном проектирования хранилища.

Не могли бы вы помочь мне сделать это?

1 Ответ

0 голосов
/ 10 сентября 2018

Вы задали несколько вопросов в этой теме и ничего не сказали о своей попытке и неудаче.

Для подсказки вы должны написать веб-сервис, который предоставляет API клиентам, чтобы загрузить изображение на сервер и сохранить тему локально на сервере, выполнить поиск WCF или WebAPI для реализации веб-сервиса на C #.

  • Не хранить содержимое изображений в базе данных из-за увеличения размера базы данных с течением времени.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...