Сохраните изображение загруженное в picturebox в mysqldatabase в виде байтов
Я пытаюсь правильно сохранить изображение, которое будет загружено Пользователем в picturebox и должно быть сохранено в базе данных после нажатия кнопки Сохранить.
в приведенной ниже строке кода говорится, что image1 не содержит определения для сохранения.
Image1.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); data = ms.ToArray();
Что я уже пробовал:
//это мой код для загрузки изображения в picturebox, который является (image1)
{ string folderPath = Server.MapPath("~/Files/"); //Check whether Directory (Folder) exists. if (!Directory.Exists(folderPath)) { //If Directory (Folder) does not exists Create it. Directory.CreateDirectory(folderPath); } //Save the File to the Directory (Folder). FileUpload1.SaveAs(folderPath + Path.GetFileName(FileUpload1.FileName)); //Display the Picture in Image control. Image1.ImageUrl = "~/Files/" + Path.GetFileName(FileUpload1.FileName); }
//это базовый код, который я пытался вставить в базу данных
try { byte[] data; using (MemoryStream ms = new MemoryStream()) { Image1.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); data = ms.ToArray(); } { using (MySqlConnection con = new MySqlConnection(myconstring)) { con.Open(); using (MySqlCommand command = new MySqlCommand("INSERT INTO image (picture) VALUES (@IM)", con)) { command.Parameters.AddWithValue("@IM", data); command.ExecuteNonQuery(); } } }
//это мой код для выбора изображения из базы данных для отображения в поле picture, который отлично работает, когда я вставляю изображение непосредственно в базу данных, а не с веб-страницы.
byte[] bytes = (byte[])command.ExecuteScalar(); string strBase64 = Convert.ToBase64String(bytes); if (strBase64 != null) { prvimage.ImageUrl = "data:Image/png;base64," + strBase64; } else { Response.Write("Must upload an Image"); }