无刷新的批量图片上传插件.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
时间: 2024-08-05 11:04:54

无刷新的批量图片上传插件.NET版的相关文章

无刷新的的文件上传

一. 通过iframe来实现无刷新的的文件上传,其实是有刷新的,只是在iframe里面隐藏了而已 简单的原理说明: <form id="form1" method="post" action="upload.do" enctype="multipart/form-data"  target="uploadframe" > <input type="file" id=&q

Jquery自定义图片上传插件

1 概述 编写后台网站程序大多数用到文件上传,可是传统的文件上传控件不是外观不够优雅,就是性能不太好看,翻阅众多文件上传控件的文章,发现可以这样去定义一个文件上传控件,实现的文件上传的效果图如下: 2.该图片上传插件实现功能如下: 1>能够异步上传,上传成功之后,服务器返回响应结果:能够定义上传前和上传后自定义处理方式: 2>能够实现文件格式判断,过滤非图片文件: 3>服务端能够过滤重复上传的图片: 3.页面代码分析: 1>.Jquery图片上传插件代码如下: // 选中文件, 提

WebUploader文件图片上传插件的使用

最近在项目中用到了百度的文件图片上传插件WebUploader.分享给大家 需要在http://fex.baidu.com/webuploader/download.html点击打开链接下载WebUploader /*图片上传 */ var $ = jQuery, $img=$("#imagePath_img"), // 优化retina, 在retina下这个值是2 ratio = window.devicePixelRatio || 1, // 缩略图大小 thumbnailWid

Aps.net中基于bootstrapt图片上传插件的应用

Aps.net中基于bootstrapt图片上传插件的应用 在最近的项目中需要使用一个图片上传的功能,而且是多张图片同时上传到服务器的文件夹中,将图片路径存放在数据库中.为了外观好看使用了bootstrapt插件.插件下载地址:   http://www.jq22.com/jquery-info5231 index.html中的代码: <script> //初始化函数 $("#file-1").fileinput({ uploadUrl: 'image/Handler.as

百度图片上传插件【webuploader】

插件功能 |webuploader |文件上传 |图片上传 官方文档http://fex.baidu.com/webuploader/ 引入资源 使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF. <!--引入CSS--> <link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css"> <!--引

KindeEditor图片上传插件用法

因业务需要找了款插件 KindeEditor编辑器确认挺好用,但无奈技术有限,上传配置不知,故问度娘! 图片上传对于部分新手来说有时候是一件非常头疼的事,今天来分享一下项目中使用到的这个插件KindeEditor:对于图片上传.文件上传都是分分钟搞定的事,配置简单:现在来分享一下: KindeEditor官网Api文档:http://kindeditor.net/doc.php 要想使用此插件我们首先就要去官网下载,下载完成后将插件放进我们的项目当中,如图: 接着就是前端如何使用该插件,同样废话

图片上传插件梳理与学习

图片上传梳理与学习: 项目的oper端和seller端,用了两个不同插件,简单了解一下: 一.seller端: seller端使用的是 AjaxUpload.js ,封装好的一个库.调用时传入参数,配置相关属性即可. 1.使用步骤 引入JS文件: JS代码构建对象,传入对应参数:同时JS中的方法可以进行图片上传之前之后的处理: 后台:实现图片上传同时返回结果: 2.AjaxUpload的学习参考: http://www.zhangxinxu.com/wordpress/2009/11/ajax-

android批量文件上传(android批量图片上传)

项目中多处用到文件批量上传功能,今天正好解决了此问题,在此写出来,以便日后借鉴. 首先,以下架构下的批量文件上传可能会失败或者不会成功: 1.android客户端+springMVC服务端:服务端采用org.springframework.web.multipart.MultipartHttpServletRequest作为批量上传接收类,这种搭配下的批量文件上传会失败,最终服务端只会接受到一个文件,即只会接受到第一个文件.可能因为MultipartHttpServletRequest对serv

【前端插件】图片上传插件收集

http://tpl.9iphp.com/146.htmlHTML5实现的图片上传预览功能 http://www.dropzonejs.com/ 图片上传预览. http://segmentfault.com/a/1190000000754560HTML5 本地裁剪图片并上传至服务器(老梗) http://elemefe.github.io/image-cropper/图片裁剪 上传 http://veerkat.me/blog/posts/HTML5-tu-pian-shang-chuan-y