public
partial
class
temp_addpic : System.Web.UI.Page
... {
protected void Page_Load(object sender, EventArgs e)
...{
}
public bool ThumbnailCallback()
...{
return false;
}
protected void Button1_Click(object sender, EventArgs e)
...{
Boolean fileOK = false;
if (FileUpload1.HasFile)
...{
String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
String[] allowedExtensions =...{ ".gif", ".png", ".jpeg", ".jpg" };
for (int i = 0; i < allowedExtensions.Length; i++)
...{
if (fileExtension == allowedExtensions[i])
...{
fileOK = true;
}
else ...{
Response.Write("格式不对");
break;
}
}
}
if (fileOK)
...{
//实现文件流和二进制数组的互相转换
Stream Stream1 = FileUpload1.PostedFile.InputStream;
byte[] image = new byte[FileUpload1.PostedFile.ContentLength];
System.Drawing.Image.GetThumbnailImageAbort mycallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
Stream1.Read(image, 0, (int)Stream1.Length);
MemoryStream m1 = new MemoryStream(image);
System.Drawing.Image bit1 = System.Drawing.Image.FromStream(Stream1);
//GetTumbnailImage的参数真是奇怪
System.Drawing.Image bit2 = bit1.GetThumbnailImage(50,50,mycallback,System.IntPtr.Zero);
//新建个内存流
MemoryStream mem = new MemoryStream();
//把bit2保存到mem中 还有,在生成bit的时候就已经有ImageFormat了 所以可以直接强制转换但是经过了GetThumb的bit2就不可以直接转了,不知道为什么
bit2.Save(mem,(System.Drawing.Imaging.ImageFormat)bit1.RawFormat);
bit1.Dispose();
bit2.Dispose();
//MemoryStream 可以转成数组 这样就可以把它写到数据库里了
image = mem.ToArray();
mem.Dispose();
Response.Write(image.LongLength+"===="+ FileUpload1.PostedFile.InputStream.Length);
Response.Clear();
Response.BinaryWrite(image);
}
}
}
... {
protected void Page_Load(object sender, EventArgs e)
...{
}
public bool ThumbnailCallback()
...{
return false;
}
protected void Button1_Click(object sender, EventArgs e)
...{
Boolean fileOK = false;
if (FileUpload1.HasFile)
...{
String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
String[] allowedExtensions =...{ ".gif", ".png", ".jpeg", ".jpg" };
for (int i = 0; i < allowedExtensions.Length; i++)
...{
if (fileExtension == allowedExtensions[i])
...{
fileOK = true;
}
else ...{
Response.Write("格式不对");
break;
}
}
}
if (fileOK)
...{
//实现文件流和二进制数组的互相转换
Stream Stream1 = FileUpload1.PostedFile.InputStream;
byte[] image = new byte[FileUpload1.PostedFile.ContentLength];
System.Drawing.Image.GetThumbnailImageAbort mycallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
Stream1.Read(image, 0, (int)Stream1.Length);
MemoryStream m1 = new MemoryStream(image);
System.Drawing.Image bit1 = System.Drawing.Image.FromStream(Stream1);
//GetTumbnailImage的参数真是奇怪
System.Drawing.Image bit2 = bit1.GetThumbnailImage(50,50,mycallback,System.IntPtr.Zero);
//新建个内存流
MemoryStream mem = new MemoryStream();
//把bit2保存到mem中 还有,在生成bit的时候就已经有ImageFormat了 所以可以直接强制转换但是经过了GetThumb的bit2就不可以直接转了,不知道为什么
bit2.Save(mem,(System.Drawing.Imaging.ImageFormat)bit1.RawFormat);
bit1.Dispose();
bit2.Dispose();
//MemoryStream 可以转成数组 这样就可以把它写到数据库里了
image = mem.ToArray();
mem.Dispose();
Response.Write(image.LongLength+"===="+ FileUpload1.PostedFile.InputStream.Length);
Response.Clear();
Response.BinaryWrite(image);
}
}
}