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

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

Сообщение Anonymous »

У меня есть страница, на которой отображается ASP:Image с использованием C#.
Как только изображение отобразится, теперь мне нужно обновить базу данных, сохранив ASP:Image в VARBINARY(MAX ).
пример: если при загрузке в базе данных нет изображения, изображение по умолчанию считывается из файла и помещается в объект ASP:Image. Теперь, когда я собираюсь обновить запись, мне нужно сохранить 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.
Надеюсь, я просто неправильно задаю вопрос. . Помогите!
Заранее спасибо.

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

if(img_user_image.ImageUrl.Length > 0)
{
byte[] bytes = Convert.FromBase64String(img_user_image.ImageUrl);
cmd.Parameters.Add("@user_image", System.Data.SqlDbType.VarBinary, -1).Value = bytes;
}
Посмотрите на первое сообщение, там есть несколько разных попыток.

Подробнее здесь: 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 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Сохранить asp:Image ImageUrl как byte[]? в базу данных SQL Server VARBINARY(MAX)
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Почему оба Convert.ToInt32(Byte) и Convert.ToInt32(Byte[]) компилируются, но Convert.ToInt32(byte[]) выдает исключение в
    Anonymous » » в форуме C#
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Невозможно получить C# BitArray из столбца SQL Server VARBINARY(MAX)
    Anonymous » » в форуме C#
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Невозможно получить C# BitArray из столбца SQL Server VARBINARY(MAX)
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

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