zoukankan      html  css  js  c++  java
  • 一般处理程序上传图片打水印

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.IO;
    using System.Drawing;
    
    namespace CZBK.ItcastProject.WebApp._2015_5_27
    {
        /// <summary>
        /// ProcessFileUp 的摘要说明
        /// </summary>
        public class ProcessFileUp : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/html";
                HttpPostedFile file = context.Request.Files[0];//获取上传的文件
                if (file.ContentLength > 0)
                {
                    //对上传的文件类型进行校验
                    string fileName = Path.GetFileName(file.FileName);//获取上传文件的名称,包含扩展名
                    string fileExt = Path.GetExtension(fileName);//获取用户上传的文件扩展名
                    if (fileExt == ".jpg")
                    {
                        //对上传文件进行重命名
                        string newfileName = Guid.NewGuid().ToString();
                        //将上传的文件放在不同目录下
                        string dir = "/ImageUpload/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";
                        //创建文件夹
                        if (!Directory.Exists(context.Request.MapPath(dir)))
                        {
                            Directory.CreateDirectory(context.Request.MapPath(dir));
                        }
                        //文件的完整路径
                        string fullDir = dir + newfileName + fileExt;
                        //注意:保存一定要用context.Request.MapPath来回去路径
                        file.SaveAs(context.Request.MapPath(fullDir));
    
    
                        //创建图片的水印
                        //using (Image img = Image.FromStream(file.InputStream))//或者下面的
                        //根据上传成功的图片创建一个Image
                        using (Image img=Image.FromFile(context.Request.MapPath(fullDir)))
                        {
                            //根据画布的高度与宽度创建画布
                            using (Bitmap map =new Bitmap(img.Width,img.Height))
                            {
                                //为画布创建画笔
                                using (Graphics g=Graphics.FromImage(map))
                                {
                                    g.DrawImage(img, 0, 0, img.Width, img.Height);
                                    g.DrawString("图片加水印", new Font("宋体", 30.0f, FontStyle.Bold), Brushes.Red, new PointF(map.Width - 400, map.Height - 200));
                                    string waterImageName="water"+Guid.NewGuid().ToString();
                                    map.Save(context.Request.MapPath("/ImageUpload/"+waterImageName+".jpg"),System.Drawing.Imaging.ImageFormat.Jpeg);
                                    context.Response.Write("<html><body><img src='" + fullDir + "'></br><img src='/ImageUpload/" + waterImageName + ".jpg' /></body></html>");
                                }
                            }
                        }
                        
                        //context.Response.Write("<html><body><img src='" + fullDir + "'></body></html>");
                        //file.SaveAs(context.Request.MapPath("/ImageUpload/"+fileName));//完成文件的保存
                        //context.Response.Write("<html><body><img src='/ImageUpload/" + fileName + "'></body></html>");
                    }
                    else
                    {
                        context.Response.Write("只能上传图片文件");
                    }
                }
                else
                {
                    context.Response.Write("请选择上传文件");
                }
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form action="ProcessFileUp.ashx" method="post" enctype="multipart/form-data">
            <input type="file" name="fileup" />
            <input type="submit" value="上传" />
        </form>
    </body>
    </html>
  • 相关阅读:
    linux下遍历目录
    C++忽略字符大小写比较
    apue.h文件找不到的解决办法
    使用Django框架
    输出程序运行的时间(精确到微秒)
    好玩的代码(1)
    在日志文件中输出当前时间
    windows下安装storm1.1.0并启动
    eclipse配置hadoop2.7.2开发环境并本地跑起来
    windows下安装并启动hadoop2.7.2
  • 原文地址:https://www.cnblogs.com/wyt007/p/6099366.html
Copyright © 2011-2022 走看看