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

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

时间: 2024-10-05 05:04:56

ashx 图片上传的相关文章

bootstrap-fileinput 图片上传

bootstrap-fileinput 源文件 在网上下载 CSS: <link href="../../static/Bootstrap/css/plugins/bootstrap-fileinput/fileinput.min.css" rel="stylesheet" /> JS: <script src="../../static/Bootstrap/js/plugins/bootstrap-fileinput/fileinput

ajax图片上传(asp.net +jquery+ashx)

一.建立Default.aspx页面 [csharp] view plain copy <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E

CKEditor不借助CKFinder实现图片上传(.net版 ashx实现)

参考博客:http://blog.csdn.net/mydwr/article/details/8669594 本人版本:4.4.6 打开文件:ckeditor/plugins/image/dialogs/image.js 搜索内容:[c.config.image_previewText],并删掉其后引号内的内容. 删除后格式:[c.config.image_previewText||""]. 与原文差异:原内容原文中是[b.config.image_previewText],我这里是

C# 通过ASHX保存上传的图片并制作高质量的缩略图的代码

如下的内容段是关于C# 通过ASHX保存上传的图片并制作高质量的缩略图的内容,应该能对小伙伴也有帮助. <%@ WebHandler Language="C#" Class="UploadFile" Debug="true" %> using System; using System.Web; public class UploadFile : IHttpHandler { public void Proce***equest(Htt

图片上传

1.Body标签中增加元素 <div class="m"><img src="~/Content/images/addp.png" width="100%" onclick="uploadLogoImage(this)"/></div> <input type="file" style="display: none" id="fileU

kindeditor扩展粘贴图片功能&amp;修改图片上传路径并通过webapi上传图片到图片服务器

前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功能 kindeditor修改图片上传路径并通过webapi上传图片到图片服务器(支持分布式图片) 结果演示 1.扩展粘贴图片功能演示 2.修改图片上传路径演示: 我们的网站演示地址是:http://localhost:9393/ 我们的图片服务器地址是:http://localhost:9394/

自己动手打造ajax图片上传

今天笔者需要一款图片上传插件,但是网上没有提供一款符合自己需求且好用的.于是就自己动手写了一个. 方法1,仅使用jquery代码,不用第三方插件.代码如下 <p> <label>上传图片</label> <input class="ke-input-text" type="text" id="url" value="" readonly="readonly" /&g

验证码和图片上传和多张图片无刷新上传

先来验证码一般处理程序编写 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 namespace Blog.UI 7 { 8 using System.Drawing; 9 using Blog.Common; 10 /// <summary> 11 /// Vcode 的摘要说明 12 /// </summary> 13 public c

图片上传及显示(包含多文件)

前一段时间用到文件上传,好久没有写这个东西,有的东西也忘记了.所以本篇博客BZ决定记载一下,一方面自己回顾加深一下,另一方面供各位程序员学习. 希望大神们对本文不对的地方进行批评指正! 先在我们的html页面写上上传文件的文本框及图片显示所在的DIV,如下: 1 <div class="form-group"> 2 <label class="col-sm-2 control-label no-padding-right" id="lb_