zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    【bzoj5180】[Baltic2016]Cities 斯坦纳树
    【BZOJ1859】【ZJOI2006】碗的叠放
    【bzoj4589】Hard Nim FWT+快速幂
    【BZOJ1502】【NOI2005】月下柠檬树 simpson 积分
    【loj6437】 【PKUSC2018】 PKUSC 计算几何
    【PKUSC2018】【loj6433】最大前缀和 状压dp
    【pkuwc2018】 【loj2537】 Minmax DP+线段树合并
    多项式求逆元详解+模板 【洛谷P4238】多项式求逆
    【bzoj3684】 大朋友和多叉树 生成函数+多项式快速幂+拉格朗日反演
    【codeforces 623E】dp+FFT+快速幂
  • 原文地址:https://www.cnblogs.com/taikongbai/p/11770379.html
Copyright © 2011-2022 走看看