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" />
}