ashx 图片上传
Posted taikongbai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
以上是关于ashx 图片上传的主要内容,如果未能解决你的问题,请参考以下文章