Сохранить asp:Image ImageUrl как byte[]? в базу данных SQL Server VARBINARY(MAX)C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Сохранить asp:Image ImageUrl как byte[]? в базу данных SQL Server VARBINARY(MAX)

Сообщение Anonymous »

У меня есть страница, на которой отображается ASP:Image с использованием C#.
Как только изображение отобразится, как мне обновить базу данных, сохранив ASP:Image в VARBINARY(MAX ) в моей таблице SQL Server?
Например, если при загрузке в базе данных нет изображения, изображение по умолчанию считывается из файла и помещается в ASP. :Объект изображения. Теперь, когда я собираюсь обновить запись, мне нужно сохранить ASP:Image в базе данных.
После поиска у меня есть несколько вариантов. Больше всего смысла имело следующее:

Код: Выделить всё

if (img_user_image.ImageUrl.Length > 0)
{
byte[] bytes = Convert.FromBase64String(img_user_image.ImageUrl.Replace("data:image/png;base64,", ""));
cmd.Parameters.Add("@user_image", System.Data.SqlDbType.VarBinary, -1).Value = bytes.ToArray();
}
Я попробовал удалить заголовок base64 и превратить байты в массив. Но я не сохраняю ASP:Image в базе данных.
Я не «просто загружаю» файл, поэтому использование методов FileUpload не помогает. Я полагаю, что мне нужно преобразовать в MemoryStream, но как мне поместить ASP:Image в поток памяти? Все, что я пробовал, не помогло.
При загрузке объекта ASP:Image из загруженного файла он работает как чемпион

Код: Выделить всё

if (fileUpload1.HasFile)
{
intFileSize = fileUpload1.PostedFile.ContentLength;
byte[] input = new byte[intFileSize - 1];
input = FileUpload1.FileBytes;
img_postedFile.ImageUrl = "data:image/png;base64," +    Convert.ToBase64String(input.ToArray(), 0, input.ToArray().Length);
}
Где img_postedFile — это объект ASP:Image. И сохранить из загруженного изображения тоже очень просто!

Код: Выделить всё

SQL = "INSERT INTO tblImages (Name, Size, ImageData) " +
"VALUES (@file_name, @file_size, @image_file)";
cs = DBAccess.get_cs();

SqlCommand cmd = new SqlCommand(SQL, new SqlConnection(cs));
SqlDataAdapter da = new SqlDataAdapter(SQL, cmd.Connection);
cmd.Parameters.Add(new SqlParameter("@file_name", FileUpload1.FileName));
cmd.Parameters.Add(new SqlParameter("@file_size", intFileSize));
cmd.Parameters.Add(new SqlParameter("@image_file", input));

cmd.Connection.Open();
int i = cmd.ExecuteNonQuery();
cmd.Connection.Close();
Но это не то, что мне нужно делать. Теперь мне нужно сохранить этот файл изображения ASP в базе данных, позже в процессе обработки, а не во время загрузки.
Поиск в Google заставляет меня ходить кругами, но я не могу найти решение. Конечно, должен быть способ (возможно, до смешного простой) прочитать отображаемый ASP:Image и сохранить его в базе данных SQL Server.
Надеюсь, я просто не задаю этот вопрос. правильно. Помогите!
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/790 ... rbinarymax
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сохранить asp:Image ImageUrl как byte[]? в базу данных SQL Server VARBINARY(MAX)
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Сохранить asp:Image ImageUrl как byte[]? в базу данных SQL VARBINARY(MAX)
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Невозможно получить C# BitArray из столбца SQL Server VARBINARY(MAX)
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Невозможно получить C# BitArray из столбца SQL Server VARBINARY(MAX)
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как я могу создать TAR -файл в памяти из нескольких столбцов Varbinary (MAX), хранящихся в SQL Server с использованием N
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»