Насколько я понимаю, хранение изображений непосредственно в базе данных 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 сотрудников (пользователей), и я должен найти способ сохранения изображений со всех компьютеров пользователей на жестком диске сервера (не на каждом компьютер пользователя отдельно, чтобы иметь возможность показывать все изображения всем пользователям).
У меня есть два вопроса:
- Как передать (загрузить) изображения с ПК пользователя через интрасеть на сервер?
- Как изменить вышеуказанные коды для сохранения изображений на жестком диске сервера вместо компьютера пользователя?
Я использую технологию LINQ (DataContext
) с шаблоном проектирования хранилища.
Не могли бы вы помочь мне сделать это?