• 无刷新的批量图片上传插件.NET版


    啥都不说,先上效果图:

    这是一个网上的第三方组件,原版是php的,我用.NET重写了图片上传的处理,下面贴上代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.IO;
    using System.Text;
    
    namespace CFUpload.CFUpload
    {
    	/// <summary>
    	/// Upload 的摘要说明
    	/// </summary>
    	public class Upload : IHttpHandler
    	{
    		public void ProcessRequest(HttpContext context)
    		{
    			context.Response.ContentType = "text/html";
    
    			//定义文件保存目录
    			String save_path = context.Server.MapPath("./files/");
    			//定义文件保存url
    			String save_url = "/CFUpload/files/";
    			//定义允许文件的扩展名
    			String[] ext_arr = {"gif", "jpg", "jpeg", "png", "bmp"};
    			//定义最大允许的文件大小
    			int max_size = 1024 * 500;
    
    			HttpFileCollection files = context.Request.Files;
    
    			//有文件存在
    			if (files.Count > 0)
    			{
    				HttpPostedFile file = files["Filedata"];
    				String file_name = file.FileName;
    				int file_size = file.ContentLength;
    				String file_ext = Path.GetExtension(file_name);
    
    				//检查文件名
    				if (!ChecPickExt(file_ext))
    				{
    					context.Response.Write("返回错误: 请选择文件");
    					context.Response.End();
    				}
    
    				//检查目录
    				if (!Directory.Exists(save_path))
    				{
    					context.Response.Write("返回错误: 上传目录不存在("+save_path+")");
    					context.Response.End();
    				}
    
    				//检查是否已上传
    				if (File.Exists( Path.Combine(save_path , file_name) ))
    				{
    					context.Response.Write("返回错误: 文件已存在");
    					context.Response.End();
    				}
    
    				//检查文件大小
    				if (file_size > max_size)
    				{
    					context.Response.Write("返回错误: 上传文件大小超过限制。最大"+(max_size/1024)+"KB");
    					context.Response.End();
    				}
    
    
    				context.Response.Write("上传的文件:" + file_name);
    				context.Response.Write("文件类型:" + file_ext);
    				context.Response.Write("文件大小:" + file_size);
    
    				//创建文件夹
    				String directPath = Path.Combine(save_path, DateTime.Now.ToString("yyyy-MM-dd"));
    				Directory.CreateDirectory(directPath); //存在则创建,不存在则不创建
    				String realFileName = DotNet.Utilities.Encrypt.Md5(file_name);
    				String realFilePath = directPath + "/" + realFileName + file_ext;
    				//保存文件
    				file.SaveAs(realFilePath);
    				//提示上传成功
    				context.Response.Write("<br />上传成功</br >");
    			}
    
    		}
    
    
    		/// <summary>
    		/// 在服务器端判断文件后缀
    		/// </summary>
    		/// <param name="ext"></param>
    		/// <returns></returns>
    		public bool ChecPickExt(String ext)
    		{
    			if (ext.ToLower() == ".bmp")
    				return true;
    			if (ext.ToLower() == ".jpg" || ext.ToLower() == ".jpeg")
    				return true;
    			if (ext.ToLower() == ".png")
    				return true;
    			if (ext.ToLower() == ".gif")
    				return true;
    
    			return false;
    		}
    
    		public bool IsReusable
    		{
    			get
    			{
    				return false;
    			}
    		}
    	}
    }
    

    处理过程在原版基础上稍作处理,针对.NET环境下作了优化,供大家参考 。

    Demo下载:http://pan.baidu.com/s/1dDvS9XJ
  • 相关阅读:
    随笔:判断一个范围内有多少质数,分别是多少
    随笔:判断一个整数是否是质数,如果不是质数,那么因数表达式是什么
    随笔:Python发送SMTP邮件方法封装
    Python基础学习:打印九九乘法表
    随笔:docker学习笔记(包括了基础学习和制作运行jar包的docker镜像,还有centos7防火墙这个坑)
    随笔:测试心得
    随笔:docker安装
    Python基础:Python连接MySQL数据库方法封装2
    随笔:Python打印临时日志、清空临时日志
    radio点击一下选中,再点击恢复未选状态
  • 原文地址:https://www.cnblogs.com/hoosway/p/4265491.html
Copyright © 2020-2023  润新知