Открытие изображения в VB для отправки в базу данных - Asp.Net - PullRequest
0 голосов
/ 22 апреля 2009

В настоящее время я исправляю программу asp.net, где мне нужно иметь возможность отправить изображение в базу данных SQL Server 2005. Он отлично работает, когда я использую элемент управления asp: fileupload, но хитрость в том, что когда пользователь удаляет изображение, я должен заменить его изображением с сервера, говоря «пусто», в коде позади.

Я знаю, как открывать, использовать и сохранять текстовые файлы в vb, но нигде не могу найти никакой информации о том, как открыть файл изображения / двоичный файл таким же образом, чтобы я мог использовать его в качестве sql-параметра на запрос на обновление.

Ниже приведен пример того, как легко использовать файл из элемента управления fileupload.


            Dim t_id As Integer = Convert.ToInt32(Request.QueryString("id"))

            open()

            Dim picture As New SqlParameter("@picture", pictureFileUpload.FileBytes)
            Dim id As New SqlParameter("@id", t_id)

            myCommand = New SqlCommand("spChangeImage")
            myCommand.CommandType = CommandType.StoredProcedure
            myCommand.Connection = conn

            myCommand.Parameters.Add(picture)
            myCommand.Parameters.Add(id)

            myCommand.ExecuteNonQuery()
            close()

Теперь мне нужен способ открыть файл изображения и установить его в качестве параметра аналогичным образом, но я понятия не имею, как это сделать. Все результаты поиска направлены на открытие и просмотр изображения в формате html, мне просто нужен бинарный файл, чтобы использовать его в запросе. Я пытаюсь использовать двоичный ридер, но даже тогда я не знаю, как на самом деле отобразить файл для начала.

Заранее спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 22 апреля 2009

Лично я не буду хранить это изображение в базе данных, когда пользователь удаляет их значение. Я бы установил столбец на ноль. При записи изображения я обнаружил бы, если столбец нулевой, , затем прочитайте файл и запишите его в ответ. Если вы сделаете это, вам не нужно ничего собирать в локальном буфере, вы можете просто записать каждый буфер в ответ по мере его чтения. Вы можете использовать FileInfo.Length для определения длины содержимого ответа.

Если вы настаиваете на помещении изображения в БД, вы также можете использовать FileInfo.Length, чтобы определить размер буфера, который вам нужен для хранения изображения. Используйте BinaryReader для чтения этой длины байтов в буфер. Затем буфер становится вашим параметром для команды SQL.

1 голос
/ 22 апреля 2009

это может помочь.

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