您的位置:首页 > 其它

一般处理程序处理图片上传下载

2012-04-26 23:24 393 查看
2012年4月26日 天气晴 今天和同学开玩笑 我说 像我们这种搞技术的 照理说应该是很胖的 可我怎么这么瘦(别人说像排骨),小童同学回答道:“你是个伪技术员”。 呵呵 fuck 我要去搞运动去了。

正在学习asp.net基础,一般处理程序处理上传下载:

上传:

html文件

<form action="" method="post" enctype="multipart/form-data"><!--enctype="multipart/form-data"表示有文件要传-->

<input type="file" name="uploadfile" /><input type="submit" value="上传" /><input type="hidden" name="ispostback" value="1" />

</form>

ashx文件

public void ProcessRequest (HttpContext context) {

if (string.IsNullOrEmpty(context.Request.Form["ispostback"]))//判断是否是第一次加载 我是在html页面上加了一个隐藏字段 来实现的

{

string strHTML = System.IO.File.ReadAllText(context.Server.MapPath("~/uploadimage.htm"));//这里我是用一个模板 上面的html是在这个模板里的在这里每次请求这个ashx 自动产生html 这里有点像模拟aspx文件

context.Response.Write(strHTML);//如果是第一次加载 写入html文件

}

else //如果 不是第一次加载 说明是上传

{

if (context.Request.Files.Count > 0)//判断是否有文件上传过来

{

HttpPostedFile ht=context.Request.Files["uploadfile"];//取出文件

string filename= ht.FileName;//取出 文件名

filename=DateTime.Now.ToString("MM-dd-hh-mm-ss")+filename;//文件名加时间 访问重名

ht.SaveAs(context.Server.MapPath("~/")+filename);//保存文件

//context.Response.Write("上传成功"+filename);

returnHtml(context);

}

else

{

context.Response.Write("你没有选择文件");

}

}

}

一般处理程序处理图片:

public void ProcessRequest (HttpContext context) {

context.Response.ContentType = "image/jpeg";

/*using (Image img = Bitmap.FromFile(context.Server.MapPath("~/") + "04-26-09-39-25psu.jpg"))

{

using (Graphics gp = Graphics.FromImage(img))

{

gp.DrawString("图片测试", new Font("微软雅黑", 16), Brushes.LightBlue, new PointF(img.Width - 80, img.Height - 30));

img.Save(context.Response.OutputStream, img.RawFormat);//img.RawFormat是获取一张图片的格式

}

}//从原有图片 生成 并发送文件流

*/

/*using (Image img = Bitmap.FromFile(context.Server.MapPath("~/") + "04-26-09-39-25psu.jpg"))

{

using (Bitmap bt = new Bitmap(img, 100, 100))

{

bt.Save(context.Response.OutputStream, img.RawFormat);

}

}//把一张图片 缩成 100,100大小的图片

*/

/*using (Bitmap bt = new Bitmap( 100, 100))

{

using (Graphics gp = Graphics.FromImage(bt))

{

gp.FillRectangle(Brushes.White, new Rectangle(0,0,100,100));

gp.DrawString("真他妈的黑!",new Font("微软雅黑",16),Brushes.Red,new PointF(2,2));

bt.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);

}//自己新建一张图片 然后输出出去

}*/

string files=context.Request.QueryString["waterimg"];//获取表单值

if (!string.IsNullOrEmpty(files))//判断是否为空

{

if(File.Exists(context.Server.MapPath("~/"+files)))//判断文件是否存在

{

using(Image img=Bitmap.FromFile(context.Server.MapPath("~/"+files)))//建立图片

{

using (Graphics gp = Graphics.FromImage(img))//创建画布

{

gp.DrawImage(Bitmap.FromFile(context.Server.MapPath("~/" + "baidulogo.gif")), new Point(0, 0));//添加水印 baidulogo.gif是水印图片

img.Save(context.Response.OutputStream, img.RawFormat);

}

}

}

}//调用方式 <img src="makeimg.ashx?waterimg=04-26-09-39-25psu.jpg" />

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: