图片上传到数据库

数据库
CREATE TABLE [dbo].[Image_Table](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[ImageCol] [image] NOT NULL,
 CONSTRAINT [PK_Image_Table] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
protected void btn_Upload_Click(object sender, EventArgs e)
    {
        string result = "";
        if (upfile.HasFile)
        {
            string ExtenName = System.IO.Path.GetExtension(upfile.FileName);
            string FileName = upfile.FileName;
            long fileLength = upfile.PostedFile.ContentLength;

            if (string.IsNullOrEmpty(ExtenName) || !IsVaildType(upfile.PostedFile.ContentType.ToLower()))
            {
                result = "请上传图片类型的文件!";
            }
            else
            {

                if (fileLength > 10 * 1024 * 1024)
                {
                    result = "上传的文件不能大于10M";
                }
                else
                {
                    try
                    {
                        Stream fs = upfile.FileContent;

                        int filelength = Convert.ToInt32(fs.Length);

                        if (filelength == 0)
                        {
                            return;
                        }
                        Byte[] filebyteArray = new Byte[filelength];
                        BinaryReader br = new BinaryReader(fs);
                        filebyteArray = br.ReadBytes(Convert.ToInt32(filelength));

                        #region 生成80*80的缩略图


                        //MemoryStream fs_smail = new MemoryStream();
                        //Bitmap bp = new Bitmap(fs);
                        //int width = 80;
                        //int height = (int)((double)bp.Height / (double)bp.Width * 80);
                        //System.Drawing.Image img = bp.GetThumbnailImage(80, 80, null, IntPtr.Zero);
                        //img.Save(fs_smail, ImageFormat.Jpeg);
                        //int filelength_smail = Convert.ToInt32(fs_smail.Length);
                        //Byte[] filebyteArray_smail = new Byte[filelength_smail];
                        //int count = fs_smail.Read(filebyteArray_smail, 0, filelength_smail);
                        //fs_smail.Close();
                        #endregion

                        fs.Close();

                        string conSql = "";
                        SqlConnection conn = new SqlConnection(conSql);

                        SqlCommand com = new SqlCommand();
                        com.Connection = conn;

                        StringBuilder comText = new StringBuilder();
                        comText.Append("insert into Image_Table values(@imageCol)");
                        com.CommandText = comText.ToString();

                        com.Parameters.Add(new SqlParameter("@imageCol",SqlDbType.Image));
                        com.Parameters["@imageCol"].Value = filebyteArray;

                        conn.Open();
                        com.ExecuteNonQuery();

                    }
                    catch (Exception ex)
                    {
                        result = ex.Message;
                    }
                    finally
                    {

                    }
                }
            }
        }
        else
        {
            result = "请选择图片!";
        }

        if (string.IsNullOrEmpty(result))
        {
            Response.Write("<script>alert('上传成功!');</script>");
           }
        else
        {
            Response.Write(string.Format("<script>alert('{0}');</script>",result));
        }
    }
    /// <summary>
    /// 验证文件类型,必须为图片类型
    /// </summary>
    /// <param name="ExtenName"></param>
    /// <returns></returns>
    private bool IsVaildType(string ExtenName)
    {
        string[] FileExten = { "image/pjpeg", "image/gif", "image/x-png" };
        for (int i = 0; i < FileExten.Length; i++)
        {
            if (FileExten[i].Equals(ExtenName))
                return true;
        }
        return false;
    }




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值