ashx 图片上传路径URL
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 "";
}
}
}
}
在你所要用到的方法里面进行调用上面的图片上传方法 这里可以接收到图片上传方法返回的 已经上传的图片的相对路径
//取到传过来的图片流
HttpPostedFile file = context.Request.Files[0];
//创建一个新的文件 ImgUpLoad
ImgUpLoad load = new ImgUpLoad();
//图片返回值为新文件里的ImgUp方法
string imgUrl = load.ImgUp(context, file);
让我们一起来学习C#吧~~~

浙公网安备 33010602011771号