My code is upload the image and save the image in binary format
jpeg format image is save and also displayed
problem is that Gif format image is not stored and displayed
this my image upload Code
string strImageName = TextBox1.Text.ToString();
if (!object.Equals(Session["Id"], null))
{
if (Object.Equals(Session["Id"], Request.QueryString["Id"].ToString()))
{
if (FileUpload2.HasFile)
{
string ImageName = FileUpload2.PostedFile.FileName;
string sImageFileExtension = ImageName.Substring(ImageName.LastIndexOf(".")).ToLower();
if (sImageFileExtension == ".Gif" || sImageFileExtension == ".png" || sImageFileExtension == ".jpg" || sImageFileExtension == ".jpeg" || sImageFileExtension == ".bmp")
{
System.Drawing.Image imageToBeResized = System.Drawing.Image.FromStream(FileUpload2.PostedFile.InputStream);
int imageHeight = imageToBeResized.Height;
int imageWidth = imageToBeResized.Width;
int maxHeight = 450;
int maxWidth = 320;
if (imageWidth > maxWidth)
{
imageHeight = (imageHeight * maxWidth) / imageWidth;
imageWidth = maxWidth;
}
if (imageHeight > maxHeight)
{
imageWidth = (imageWidth * maxHeight) / imageHeight;
imageHeight = maxHeight;
}
Bitmap bitmap = new Bitmap(imageToBeResized, imageWidth, imageHeight);
System.IO.MemoryStream stream = new MemoryStream();
bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Gif);here is problem may be image Gif format is not supported
stream.Position = 0;
byte[] image = new byte[stream.Length + 1];
stream.Read(image, 0, image.Length);
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\omar\Documents\Visual Studio 2005\WebSites\Project2\App_Data\Database.mdf;Integrated Security=True;User Instance=True");
string que = "insert into Pictures(Id,ImageName,Image)values('" + Session["Id"] + "',@imagename,@image )";
SqlCommand com = new SqlCommand(que, con);
com.Parameters.Add("@imagename", SqlDbType.VarChar, 500);
com.Parameters.Add("@image", SqlDbType.Image, image.Length);
com.Parameters["@imagename"].Value = strImageName.ToString();
com.Parameters["@image"].Value = image;
con.Open();
com.ExecuteNonQuery();
con.Close();
}
}
}
}
}
Handle code is
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\omar\Documents\Visual Studio 2005\WebSites\Project2\App_Data\Database.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Select Image from Pictures where ImgId =@ImgId";
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = con;
SqlParameter ImageID = new SqlParameter("@ImgId", System.Data.SqlDbType.Int);
ImageID.Value = context.Request.QueryString["ImgId"];
cmd.Parameters.Add(ImageID);
con.Open();
SqlDataReader dReader = cmd.ExecuteReader();
dReader.Read();
context.Response.BinaryWrite((byte[])dReader["Image"]);
dReader.Close();
con.Close();
}