数据库
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;
}