asp.net загрузить изображение - PullRequest
1 голос
/ 25 марта 2011

У меня есть сайт веб-форм asp.net, я ищу создать элемент управления, который позволяет пользователю просматривать изображение, а затем сохранять изображение в базе данных. Я знаю, что сохранение изображений в базе данных - плохая практика, но это то, что мне сказали делать!

Есть ли у кого-нибудь предложения о том, как лучше всего это сделать?

спасибо

Ответы [ 3 ]

6 голосов
/ 25 марта 2011

По сути, все, что вам нужно, это FileUpload элемент управления и некоторый код для сохранения его в базе данных. (И вы, конечно, захотите также выполнить некоторую проверку ввода.) Есть довольно старое руководство, которое хорошо объясняет концепцию здесь . Этот немного новее. Но нет недостатка в других .

4 голосов
/ 25 марта 2011

из образца:

var intDoccumentLength = FileUpload1.PostedFile.ContentLength;
var newDocument = new byte[intDoccumentLength];

var stream = FileUpload1.PostedFile.InputStream;
stream.Read(newDocument, 0, intDoccumentLength);
var sqlConnection = new SqlConnection(sqlConnectionString);
sqlConnection.Open();

var sqlQuery = "INSERT INTO dbo.DocumentData (DocName, DocBytes, DocData, DocCreatedAt) VALUES (@DocName, @DocBytes, @DocData, @DocCreatedAt);"
                           + "SELECT CAST(SCOPE_IDENTITY() AS INT)";

sqlCommand = new SqlCommand(sqlQuery, sqlConnection);
sqlCommand.Parameters.Add("@DocName", SqlDbType.NVarChar, 255);
sqlCommand.Parameters.Add("@DocBytes", SqlDbType.Int);
sqlCommand.Parameters.Add("@DocData", SqlDbType.VarBinary);
sqlCommand.Parameters.Add("@DocCreatedAt", SqlDbType.DateTime);

sqlCommand.Parameters["@DocName"].Value = FileUpload1.PostedFile.FileName;
sqlCommand.Parameters["@DocBytes"].Value = intDoccumentLength;
sqlCommand.Parameters["@DocData"].Value = newDocument;
sqlCommand.Parameters["@DocCreatedAt"].Value = DateTime.Now;

var newDocumentId = (Int32) sqlCommand.ExecuteScalar();
sqlConnection.Close();
0 голосов
/ 25 марта 2011

В наборе инструментов есть инструмент fileupload. Вам просто нужно записать приведенный ниже код в событие нажатия кнопки ..

string filename = FileUpload1.FileName.ToString();
         if (filename != "")
            {

                ImageName = FileUpload1.FileName.ToString();

                ImagePath = Server.MapPath("Images");
                SaveLocation = ImagePath + "\\" + ImageName;
                SaveLocation1 = "~/Image/" + ImageName;
                sl1 = "Images/" + ImageName;
                FileUpload1.PostedFile.SaveAs(SaveLocation);
            }

и я надеюсь, что у вас есть столбец изображения в вашей базе данных, поэтому просто вставьте строку sl1 в запрос вставки ..

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