asp.net图片上传文件按日期命名+真正意义上类型判断+缩略图 -
来源:互联网 发布:原宿很潮的淘宝店 编辑:程序博客网 时间:2024/05/03 08:49
ImageThumbnail.cs(生成缩略图文件)
复制代码
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
public class ImageThumbnail
{
public Image ResourceImage;
private int ImageWidth;
private int ImageHeight;
public string ErrorMessage;
public ImageThumbnail(string ImageFileName)
{
ResourceImage = Image.FromFile(ImageFileName);
ErrorMessage = "";
}
public bool ThumbnailCallback()
{
return false;
}
// 方法1,按大小
public bool ReducedImage(int Width, int Height, string targetFilePath)
{
try
{
Image ReducedImage;
Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
ReducedImage = ResourceImage.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);
ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
ReducedImage.Dispose();
return true;
}
catch (Exception e)
{
ErrorMessage = e.Message;
return false;
}
}
// 方法2,按百分比 缩小60% Percent为0.6 targetFilePath为目标路径
public bool ReducedImage(double Percent, string targetFilePath)
{
try
{
Image ReducedImage;
Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
ImageWidth = Convert.ToInt32(ResourceImage.Width * Percent);
ImageHeight = (ResourceImage.Height) * ImageWidth / ResourceImage.Width;//等比例缩放
ReducedImage = ResourceImage.GetThumbnailImage(ImageWidth, ImageHeight, callb, IntPtr.Zero);
ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
ReducedImage.Dispose();
return true;
}
catch (Exception e)
{
ErrorMessage = e.Message;
return false;
}
}
}
前台文件:
就一个 FileUpload1和一个Button,就不用贴代码了吧!
后台文件:
复制代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_Upload_Click(object sender, EventArgs e)
{
try
{
//判断是否已经选取文件
if (FileUpload1.HasFile)
{
if (IsAllowedExtension(FileUpload1))
{
//取得文件的扩展名,并转换成小写
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
string path1 = Server.MapPath("~/Bigimages/");
string path2 = Server.MapPath("~/Smallimages/");
string fileName = DateRndName() + fileExtension;
FileUpload1.PostedFile.SaveAs(path1 + fileName);
//生成缩略图并存进文件夹
ImageThumbnail img = new ImageThumbnail(FileUpload1.PostedFile.FileName);
img.ReducedImage(200,200,path2 + fileName);//200,200表是长和宽都为200
//img.ReducedImage(0.4, path2 + fileName);//0.4表示缩小40%
Response.Write("<script>alert(/"上传成功/");</script>");
}
else
{
Response.Write("<script>alert(/"您只能上传jpg或者gif图片/");</script>");
}
}
else
{
Response.Write("<script>alert(/"你还没有选择文件/");</script>");
}
}
catch (Exception error)
{
Response.Write(error.ToString());
}
}
//真正判断文件类型的关键函数
public static bool IsAllowedExtension(FileUpload hifile)
{
System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
string fileclass = "";
byte buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();
}
catch
{
}
r.Close();
fs.Close();
if (fileclass == "255216" || fileclass == "7173")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return true;
}
else
{
return false;
}
}
#region DateRndName()日期时间+3位数随机
string DateRndName()
{
Random ra = new Random();
DateTime d = DateTime.Now;
string s = null, y, m, dd, h, mm, ss;
y = d.Year.ToString();
m = d.Month.ToString();
if (m.Length < 2) m = "0" + m;
dd = d.Day.ToString();
if (dd.Length < 2) dd = "0" + dd;
h = d.Hour.ToString();
if (h.Length < 2) h = "0" + h;
mm = d.Minute.ToString();
if (mm.Length < 2) mm = "0" + mm;
ss = d.Second.ToString();
if (ss.Length < 2) ss = "0" + ss;
s += y + m + dd + h + mm + ss;
s += ra.Next(100, 999).ToString();
return s;
}
#endregion
}
- asp.net图片上传文件按日期命名+真正意义上类型判断+缩略图 -
- asp.net图片上传文件按日期命名+真正意义上类型判断+缩略图
- .net c#上传-按日期命名
- asp.net 真正意义上的裁减图片
- c#实现按日期命名上传文件代码
- 用.NET判断上传文件类型的三种方法,最后一种真正意义上的判断
- 图片文件上传, 生成高质量缩略图 (asp.net c#)
- ASP.NET判断uploadfile上传图片文件
- asp.net c#判断文件真正的类型
- FCKEditor 2.63 上传图片时,可按日期生成文件名、生成缩略图、添加水印
- asp.net上传图片并生成缩略图
- ASP.NET 上传图片并生成缩略图
- asp.net上传图片并生成缩略图
- Asp.net上传图片并生成缩略图
- asp.net上传图片并生成缩略图
- asp.net 上传图片并生成缩略图
- asp.net 上传图片生成缩略图
- ASP.NET 上传图片并生成缩略图
- asp.net向文本文件txt末尾追加内容 - asp.net 教程
- 轻松实现Apache,Tomcat集群和负载均衡
- linux下tomcat设置最大连接数,设置最大内存,使用jconsole监控
- iphone开发杂谈
- SQL SERVER常用函数
- asp.net图片上传文件按日期命名+真正意义上类型判断+缩略图 -
- 输出给定字符串的二进制
- 通过远程连接socket得到客户端的IP和连接端口
- portmon监视的数据量比较大时就会卡
- Python扩展和嵌入: Cython三分钟入门(笔记)
- 日本地震伤亡人数近6千 核电站多个机组现险情
- IBM Rational ClearQuest 变更管理和缺陷跟踪工具
- GridView删除数据
- winrar bz2