• ashx 图片上传


    为了方便多出调用图片上传方法       首先我们将图片上传方法抽离出来 

    创建ashx 一个新的方法

    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Linq;
    using System.Web;
    
    namespace FileImg
    {
        /// <summary>
        /// ImgUpLoad 的摘要说明
        /// </summary>
        public class ImgUpLoad : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write("Hello World");
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
            /// <summary>
            /// 图片上传 并保存至服务器  返回 保存图片的相对路径URL
            /// </summary>
            /// <param name="context"></param>
            /// <param name="file"></param>
            /// <returns></returns>
            public string ImgUp(HttpContext context)
            {
                //上传的第一个文件
                HttpPostedFile file = context.Request.Files[0];
                //获取图片的名称
                string ImgName = file.FileName;
                //获取图片的扩展名
                string ImgExtention = System.IO.Path.GetExtension(ImgName);
                //将图片流文件保存在 字节序列容器 中
                Stream stream = file.InputStream;
                //将图片流文件转换为Image图片对象
                Image img = Image.FromStream(stream);
    
                //将图片保存在服务器上
    
                //为了防止图片名称重复 我们使用随机数命名
                Random ran = new Random((int)DateTime.Now.Ticks);
                //图片保存的目录  按照日期进行保存
                string subPath = "/imgUploads/" + DateTime.Now.ToString("yyyyMMdd") + "/"; // 20190928
                //图片保存的目录的绝对路径
                string path = context.Server.MapPath(subPath);
                //当文件夹路径不存在时 创建文件夹
                if (false == System.IO.Directory.Exists(path))
                {
                    //创建pic文件夹
                    System.IO.Directory.CreateDirectory(path);
                }
                string imgName = ran.Next(99999) + ImgExtention;
                string serverPath = path + imgName;//文件保存位置及命名
                string imgPath = subPath + imgName;
                try
                {
                    img.Save(serverPath);
                    return imgPath;
                }
                catch
                {
                    return "";
                }
            }
    
        }
    }

    在你所要用到的方法里面进行调用上面的图片上传方法   这里可以接收到图片上传方法返回的  已经上传的图片的相对路径

       
                ImgUpLoad load = new ImgUpLoad();
                string imgUrl = load.ImgUp(context);
  • 相关阅读:
    HTML5 新标签
    lAMBDA表达式剖析
    whitespace 属性设置如何处理元素内的空白。
    "~/" asp.net 表示路径的方法
    ASP.NET Session详解
    关于CSS Selector的优先级
    关于汉字转拼音
    ChildActionOnly + ActionName的用法
    html中的caption是什么用
    window.location.href location.href parent.location.href
  • 原文地址:https://www.cnblogs.com/taikongbai/p/11770379.html
Copyright © 2020-2023  润新知