проблема при получении изображения, хранящегося в SQL Server 2005 - PullRequest
0 голосов
/ 13 июня 2011

Я пытаюсь извлечь изображение из sql server 2005 на веб-страницу asp.net, используя c #, вот мой код

SqlCommand getImageCmd = new SqlCommand("select Image from Images where ImageName = '" + getImageDropDownList.SelectedValue.ToString() + "'", con);
byte[] imageData = (byte[])getImageCmd.ExecuteScalar();

FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);

fs.Write(imageData, 0, (imageData.Length) );

Image1.ImageUrl = "path";
fs.Close();

Проблема в том, что я не получаю вывод в моем контроле изображений.

вот мой код, который я использовал для хранения изображений в базе данных: byte [] data = ImageUpload.FileBytes;

SqlCommand sc = new SqlCommand("insert into Images(ImageName,Image) values (@n, @p)", con);
sc.Parameters.AddWithValue("@p", data);
sc.Parameters.AddWithValue("@n", imageNameTextBox.Text);
sc.ExecuteNonQuery();

Ответы [ 2 ]

0 голосов
/ 13 июня 2011

Я думаю, что вы пытаетесь сделать,

  1. Захватить изображение из базы данных,
  2. сохранить на диске и
  3. установить URL для этого файла

Единственное, что явно не так в размещенном коде, это то, что вы устанавливаете ImageUrl в литерал "Path", а не в значение, сохраненное в Path. Также очевидно, что Path - это не URL-адрес, а путь к каталогу / файлу, поэтому вам нужно немного поработать, чтобы установить его в качестве URL-адреса.

Если вы не против использования чужого кода и можете, я бы это проверил - http://aspnet.codeplex.com/releases/view/16449, это работает, и это потрясающе.

Если ничего не помогает, подумайте над написанием собственного ASHX или реализации IHttpHandler для решения этой проблемы. Быстрый Google показывает это http://www.dotnetperls.com/ashx

0 голосов
/ 13 июня 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...