0

画像を挿入するために longblob データ型を使用していますが、エラーが発生します。

画像ボックスからmysqlデータベースに画像を挿入したい。

4

1 に答える 1

0

ここにac#の実装がありますが、ac#からVB.Netへのコンバーターを使用できます

aspxファイルの場合:

<asp:FileUpload runat="server" ID="fuPersonPicture" />
<asp:Button runat="server" ID="btnPhotoUpload" Text="Upload" OnClick="btnPhotoUpload_Click" />

コードビハインド:

protected void btnPhotoUpload_Click(object sender, EventArgs e)
{
    byte[] rawData = new byte[fuPersonPicture.FileBytes.Length];
    int fileSize = fuPersonPicture.FileBytes.Length;
    fuPersonPicture.FileContent.Read(rawData, 0, fileSize);

    string extension = Path.GetExtension(fuPersonPicture.PostedFile.FileName);
    switch (extension.ToLower())
    {
        // Only allow uploads that look like images.
        case ".jpg":
        case ".jpeg":
        case ".gif":
        case ".png":
        case ".bmp":
            System.Drawing.Image myImage = System.Drawing.Image.FromStream(fuPersonPicture.PostedFile.InputStream);

            fuPersonPicture.FileContent.Close();

            PersonPictureManager.Insert(fuPersonPicture.FileName, fileSize, rawData, myImage.Height, myImage.Width);

            //lbUploadMessage.Text = string.Empty;
            break;

        default:
            //lbUploadMessage.Text = "<br>File is not a valid image file (JPG, JPEG, GIF, BMP, PNG).";
            break;
    }
    fuPersonPicture.FileContent.Close();
}

の定義PersonPictureManager.Insert()

public static void Insert(string FileName, int FileSize, byte[] RawData, int ImageHeight, int ImageWidth)
{
        string strSQL = "insert into person_picture (file_id, file_name, file_size, file, width, height) values (NULL, @file_name, @file_size, ?file, @width, @height)";
        using (MySqlCommand cmd = new MySqlCommand(strSQL))
        {
            cmd.Parameters.Add(new MySqlParameter("@file_name", FileName));
            cmd.Parameters.Add(new MySqlParameter("@file_size", FileSize));
            cmd.Parameters.Add(new MySqlParameter("@height", ImageHeight));
            cmd.Parameters.Add(new MySqlParameter("@width", ImageWidth));
            cmd.Parameters.Add(new MySqlParameter("?file", RawData));
            DatabaseConnection.ExecuteNonQuery(cmd); // Just a DB helper class
        }
}
于 2013-03-01T10:52:38.827 に答える