码迷,mamicode.com
首页 > Web开发 > 详细

ashx 图片上传

时间:2019-10-31 13:32:22      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:tst   str   style   returns   random   字节序   server   pos   creat   

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

创建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);

 

ashx 图片上传

标签:tst   str   style   returns   random   字节序   server   pos   creat   

原文地址:https://www.cnblogs.com/taikongbai/p/11770379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!