上传图片到数据库中。。。

    按钮代码:

protected void Button1_Click(object sender, EventArgs e)
    {
        Stream imgDataStream = FileUpload1.PostedFile.InputStream;
        int imgDataLen = FileUpload1.PostedFile.ContentLength;
        string Caption = TextBox1.Text;
        byte[] BytesOriginal = new byte[imgDataLen];
        int n = imgDataStream.Read(BytesOriginal, 0, imgDataLen);
        AddPhoto(1, Caption, BytesOriginal);
        Label1.Text = "Image is uploaded";

    } 

引用其他方法代码:

public static void AddPhoto(int AlbumID, string Caption, byte[] BytesOriginal)
    {
        SqlConnection connetion = new SqlConnection(ConfigurationManager.ConnectionStrings["PERSONAL"].ConnectionString);
        string sql = "insert into [Photos] ([AlbumID],[BytesOriginal],[Caption],[BytesFull],[BytesPoster],[BytesThumb])" +
            "values (@AlbumID,@BytesOriginal,@Caption,@BytesFull,@BytesPoster,@BytesThumb)";
        SqlCommand command = new SqlCommand(sql, connetion);
        command.Parameters.Add(new SqlParameter("@AlbumID", AlbumID));
        command.Parameters.Add(new SqlParameter("@Caption", Caption));
        command.Parameters.Add(new SqlParameter("@BytesOriginal", BytesOriginal));
        command.Parameters.Add(new SqlParameter("@BytesFull", ResizeImageFile(BytesOriginal, 600)));
        command.Parameters.Add(new SqlParameter("@BytesPoster", ResizeImageFile(BytesOriginal, 198)));
        command.Parameters.Add(new SqlParameter("@BytesThumb", ResizeImageFile(BytesOriginal, 100)));
        connetion.Open();
        command.ExecuteNonQuery();
    }

private static byte[] ResizeImageFile(byte[] imageFile, int targetSize)
    {
        System.Drawing.Image oldImage = System.Drawing.Image.FromStream(new MemoryStream(imageFile));
        Size newSize = CalculateDimensions(oldImage.Size, targetSize);
        Bitmap newImage = new Bitmap(newSize.Width, newSize.Height, PixelFormat.Format24bppRgb);
        Graphics canvas = Graphics.FromImage(newImage);
        canvas.SmoothingMode = SmoothingMode.AntiAlias;
        canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;
        canvas.PixelOffsetMode = PixelOffsetMode.HighQuality;
        canvas.DrawImage(oldImage, new Rectangle(new Point(0, 0), newSize));
        MemoryStream m = new MemoryStream();
        newImage.Save(m, ImageFormat.Jpeg);
        return m.GetBuffer();
    }

private static Size CalculateDimensions(Size oldSize, int targetSize)
    {
        Size newSize = new Size();
        if (oldSize.Height > oldSize.Width)
        {
            newSize.Width = (int)(oldSize.Width * ((float)targetSize / (float)oldSize.Height));
            newSize.Width = targetSize;
        }
        else
        {
            newSize.Width = targetSize;
            newSize.Height = (int)(oldSize.Height * ((float)targetSize / (float)oldSize.Width));
        }
        return newSize;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值