Umwandeln Byte-Array in Bild: der Parameter ist nicht gültig

Ich bin die Speicherung von Bildern in einer Datenbank und möchte konvertieren von byte-array auf dem Bild. Ich habe kein problem, konvertieren eines Objekts in byte-array, aber ich bekomme eine Fehlermeldung "der Parameter ist ungültig", wenn Sie versuchen, zu konvertieren von byte-array auf dem Bild. Das Objekt bin ich vorbei, um meine Methode aus einem Datensatz Zeile.

Gespeicherte Prozedur

USE [----------------]
GO
/****** Object:  StoredProcedure [dbo].[usp_imageloader_add_test]    Script Date: 01/16/2012    09:19:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER   procedure [dbo].[usp_imageloader_add_test]
@p_Image Image

as 

INSERT into Test_Images VALUES(@p_Image)

Datei hochladen control /Sicherungsdatei konvertieren aus dem byte-array und speichern Sie Daten in die Datenbank

 protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (ctrlUpload.PostedFile != null)
        {
            if (ctrlUpload.PostedFile.ContentLength > 0)
            {
                //Get Posted File
                HttpPostedFile objHttpPostedFile = ctrlUpload.PostedFile;

                //Find its length and convert it to byte array
                int ContentLength = objHttpPostedFile.ContentLength;

                //Create Byte Array
                byte[] bytImg = new byte[ContentLength];

                //Read Uploaded file in Byte Array
                objHttpPostedFile.InputStream.Read(bytImg, 0, ContentLength);

                using (SqlConnection dbConnection = new SqlConnection(app_settings.sql_conn_string_db))
                {
                    try
                    {
                        string sql = "usp_imageloader_add_test";
                        SqlCommand cmd = new SqlCommand(sql, dbConnection);
                        cmd.CommandType = System.Data.CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@p_Image", bytImg).SqlDbType = SqlDbType.Image;
                        cmd.Connection.Open();
                        cmd.ExecuteNonQuery();
                        cmd.Connection.Close();
                    }


                    catch (Exception ex)
                    {
                        ex.Message.ToString();
                    }
                }
            }
        }
    }

Konvertieren Objekt aus dem byte-array und Bild

 private System.Drawing.Image ObjToImg(object obj)
    {
        byte[] byteArray;
        if (obj == null)
            return null;
        else
        {
            BinaryFormatter bf = new BinaryFormatter();
            MemoryStream ms = new MemoryStream();
            bf.Serialize(ms, obj);
            byteArray = ms.ToArray(); //Byte Array
            ms.Close();

            ms = new MemoryStream(byteArray, 0, byteArray.Length);
            ms.Seek(0, SeekOrigin.Begin);
            System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
            return returnImage;
        }

Irgendwelche Ideen wäre hilfreich.

stackoverflow.com/a/6712677/284240 speichern Sie die Binärdaten in eine Datei und sehen Sie, wie ein Bild-editor reagiert

InformationsquelleAutor nick gowdy | 2012-01-13

Schreibe einen Kommentar