Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как залить картинку на сервер? Добавлено: 10.05.05 13:58  

Автор вопроса:  shadow
Здрасте. Такой вот вопросец - допустим есть база сотрудников и напротив фамилии каждого должно быть его фото. Так вот, как програмно залить это фото на сервер, а потом его от туда вынуть. У объекта PictureBpx нет свойства DataSource. (( Help!

Сервер - MS SQL 2000 соотвествн. )

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 10.05.05 16:35
Код писать не стану, готового у меня вроде ничего не написано..
Технологию расскажу.

В базе делаем поле типа image - в него можно заливать любые бинарные
данные, в том числе и картинки.

При сохранении в БД берем картинку, сохраняем ее в байтовый массив:

Dim img As Image 'сюда помещается картинка
'Некие действия над картинкой, если нужно
Dim MyOut As New IO.MemoryStream
img.Save(MyOut, Imaging.ImageFormat.Png) 'Тут формат указывается
Dim bytes() As Byte
bytes = MyOut.GetBuffer


В bytes в итоге лежит картинка в бинарном виде.
Сохраняем картинку в БД:

Dim Conn As SqlConnection = DB.Conn
Dim SQL As String
Dim Comm As SqlCommand
SQL = "Insert Into log (TaskInfo) Values (@taskinfo)"
Comm = New SqlCommand(SQL, Conn)
Comm.Parameters.Add("@taskinfo", SqlDbType.Image).Value = bytes
Comm.ExecuteNonQuery


Если картинка берется из файла, то нужно для получения данных из файла
использовать классы из System.IO.


Ну а достать картинку тоже несложно. Допустим Вы загрузили данные в
DataTable. И нужно достать картинку из нулевой DataRow...

Dim bytes() As Byte = CType(DT.Rows(0).Item("taskinfo";), Byte())
Dim ms As New MemoryStream(bytes)
ms.Position=0
Dim img As Image = Image.FromStream(ms)
ms.Close
PictureBox1.Image = img

Ответить

Номер ответа: 2
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #2
Добавлено: 10.05.05 19:10
В MSDN Есть такая статья, что то типа Using BLOBs.

Можешь почитать вот это, точно твой вопрос (смотри ссылки ынутри статьи на картинку и на листинг)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqlmag03/html/ABLOBofaDifferentColor.asp

Ответить

Номер ответа: 3
Автор ответа:
 shadow



Вопросов: 11
Ответов: 28
 Профиль | | #3 Добавлено: 11.05.05 11:05
Всем спасибо )

Паша жжош! ))

Ответить

Номер ответа: 4
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 11.05.05 12:07
А я не согласен с ребятами из Microsoft.
Мой код короче, понятнее и не требует промежуточного сохранения
картинки в файл.

Ответить

Номер ответа: 5
Автор ответа:
 shadow



Вопросов: 11
Ответов: 28
 Профиль | | #5 Добавлено: 11.05.05 12:47
То что понятней - факт )) Правда пока не пробовал в реализации на работоспособность ;) !!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам