jQuery插件ASP.NET应用之AjaxUpload

本次使用AJAXUPLOAD做为上传客户端无刷上传插件,其最新版本为3.9,官方地址:http://valums.com/ajax-upload/

在页面中引入 jquery.min.1.4.2.js 和 ajaxupload.js

 

Html代码  收藏代码
  1. <script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>  
  2. <script src="Scripts/ajaxupload3.9.js" type="text/javascript"></script>  

 HTML 代码:

Html代码  收藏代码
  1. <style type="text/css">  
  2.         #txtFileName {  
  3.             width: 300px;  
  4.         }  
  5.         .btnsubmit{border-bottom: #cc4f00 1px solid; border-left: #ff9000 1px solid;border-top: #ff9000 1px solid;   border-right: #cc4f00 1px solid;text-align: center; padding: 2px 10px; line-height: 16px; background: #e36b0f;  height: 24px; color: #fff; font-size: 12px; cursor: pointer;}  
  6.     </style>  
  7.   
  8. 上传图片:<input type="text" id="txtFileName" /><div  id="btnUp" style="width:300px;" class=btnsubmit >浏览</div>  
  9.   
  10. <div id="imglist"></div>  

 js代 码:

Js代码  收藏代码
  1. <script type="text/javascript">  
  2.   
  3.     $(function () {  
  4.         var button = $('#btnUp'), interval;  
  5.         new AjaxUpload(button, {  
  6.             //action: 'upload-test.php',文件上传服务器端执行的地址  
  7.             action: '/handler/AjaxuploadHandler.ashx',  
  8.             name: 'myfile',  
  9.             onSubmit: function (file, ext) {  
  10.                 if (!(ext && /^(jpg|jpeg|JPG|JPEG)$/.test(ext))) {  
  11.                     alert('图片格式不正确,请选择 jpg 格式的文件!', '系统提示');  
  12.                     return false;  
  13.                 }  
  14.   
  15.                 // change button text, when user selects file  
  16.                 button.text('上传中');  
  17.   
  18.                 // If you want to allow uploading only 1 file at time,  
  19.                 // you can disable upload button  
  20.                 this.disable();  
  21.   
  22.                 // Uploding -> Uploading. -> Uploading...  
  23.                 interval = window.setInterval(function () {  
  24.                     var text = button.text();  
  25.                     if (text.length < 10) {  
  26.                         button.text(text + '|');  
  27.                     } else {  
  28.                         button.text('上传中');  
  29.                     }  
  30.                 }, 200);  
  31.             },  
  32.             onComplete: function (file, response) {  
  33.                 //file 本地文件名称,response 服务器端传回的信息  
  34.                 button.text('上传图片(只允许上传JPG格式的图片,大小不得大于150K)');  
  35.                   
  36.                 window.clearInterval(interval);  
  37.   
  38.                 // enable upload button  
  39.                 this.enable();  
  40.   
  41.                 var k = response.replace("<PRE>", "").replace("</PRE>", "");  
  42.   
  43.                 if (k == '-1') {  
  44.                     alert('您上传的文件太大啦!请不要超过150K');  
  45.                 }  
  46.                 else {  
  47.                     alert("服务器端传回的串:"+k);  
  48.                     alert("本地文件名称:"+file);  
  49.                     $("#txtFileName").val(k);  
  50.                     $("<img />").appendTo($('#imglist')).attr("src", k);  
  51.                 }  
  52.             }  
  53.         });  
  54.   
  55.     });  
  56. </script>  

 服务器端 ajaxuploadhandler.ashx 代码

Js代码  收藏代码
  1. public void ProcessRequest(HttpContext context)  
  2.         {  
  3.             context.Response.ContentType = "text/plain";  
  4.   
  5.             HttpPostedFile postedFile = context.Request.Files[0];  
  6.             string savePath = "/upload/images/";  
  7.             int filelength = postedFile.ContentLength;  
  8.             int fileSize = 163600; //150K  
  9.             string fileName = "-1"; //返回的上传后的文件名  
  10.             if (filelength <= fileSize)  
  11.             {  
  12.   
  13.                 byte[] buffer = new byte[filelength];  
  14.   
  15.                 postedFile.InputStream.Read(buffer, 0, filelength);  
  16.   
  17.                 fileName = UploadImage(buffer, savePath, "jpg");  
  18.   
  19.             }  
  20.   
  21.             context.Response.Write(fileName);  
  22.         }  
  23.   
  24.         public static string UploadImage(byte[] imgBuffer, string uploadpath, string ext)  
  25.         {  
  26.             try  
  27.             {  
  28.                 System.IO.MemoryStream m = new MemoryStream(imgBuffer);  
  29.   
  30.                 if (!Directory.Exists(HttpContext.Current.Server.MapPath(uploadpath)))  
  31.                     Directory.CreateDirectory(HttpContext.Current.Server.MapPath(uploadpath));  
  32.   
  33.                 string imgname = CreateIDCode() + "." + ext;  
  34.   
  35.                 string _path = HttpContext.Current.Server.MapPath(uploadpath) + imgname;  
  36.   
  37.                 Image img = Image.FromStream(m);  
  38.                 if (ext == "jpg")  
  39.                     img.Save(_path, System.Drawing.Imaging.ImageFormat.Jpeg);  
  40.                 else  
  41.                     img.Save(_path, System.Drawing.Imaging.ImageFormat.Gif);  
  42.                 m.Close();  
  43.   
  44.                 return uploadpath + imgname;  
  45.             }  
  46.             catch (Exception ex)  
  47.             {  
  48.                 return ex.Message;  
  49.             }  
  50.   
  51.         }  
  52.   
  53.         public static string CreateIDCode()  
  54.         {  
  55.             DateTime Time1 = DateTime.Now.ToUniversalTime();  
  56.             DateTime Time2 = Convert.ToDateTime("1970-01-01");  
  57.             TimeSpan span = Time1 - Time2;   //span就是两个日期之间的差额     
  58.             string t = span.TotalMilliseconds.ToString("0");  
  59.   
  60.             return t;  
  61.         }  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Avalonia跨平台入门第十一篇之自定义Window

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定;今天趁着周末接着去摸索自定义Window样式,毕竟自带的样式不太让人满意;最终实现的效果如下图:前台Window样式:后台Window代码:咱也基于AvalonS…

ie8下修改input的type属性报错

摘要&#xff1a; 现在有一个需求如图所示&#xff0c;当用户勾选显示明文复选框时&#xff0c;要以明文显示用户输入的密码&#xff0c;去掉勾选时要变回密文&#xff0c;刚开始想到的就是修改输入框的type来决定显示明文还是密文&#xff0c;使用jQuery的attr来做试验&#x…

dotNet Core使用SignalR实现websocket

前言:最近有一个公司项目做一个排队叫号系统&#xff0c;系统功能不复杂&#xff0c;所以后端就我一人&#xff0c;难点在于消息推送到安卓屏上&#xff0c;最近有点时间&#xff0c;把我工作中使用的技术分享出来&#xff01;整个技术架构:前端使用vue uniapp&#xff0c;后端…

《手机测试Robotium实战教程》——导读

本节书摘来自异步社区《手机测试Robotium实战教程》一书中的导读&#xff0c;作者 杨志伟&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 目 录前 言第1章 自动化测试简介 1.1节何为自动化测试1.2节自动化测试和手动测试的对比1.3节移动端自动化测试工具的选…

为record类型自定义Equals方法

前言record类型&#xff0c;这是一种新引用类型&#xff0c;而不是类或结构。record与类不同&#xff0c;区别在于record类型使用基于值的相等性。例如&#xff1a;public record DemoRecord(int id);public class DemoClass {public DemoClass(int id){this.id id;}public in…

解决IDEA修改已有项目为maven项目时目录结构被改变的问题

Idea可以在项目根目录上右键选择“添加框架支持”&#xff0c;选择maven&#xff0c;为项目添加Maven支持。 但这样会导致原有项目的目录结构被破坏。 更好的方法是在根目录添加pom.xml文件 在<build>标签内添加 <sourceDirectory>标签&#xff0c;并填入源码根目…

排序——选择排序

选择排序 作者&#xff1a;上品物语 知识点&#xff1a; 原理示意图算法特点复杂度1.1 原理 首先&#xff0c;找到数组中最小的那个元素&#xff0c;其次&#xff0c;将它和数组的第一个元素交换位置&#xff08;如果第一个元素就是最小元素&#xff0c;那么它就和自己交换&…

.Net/C#分库分表高性能O(1)瀑布流分页

框架介绍依照惯例首先介绍本期主角:ShardingCore 一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案&#xff0c;具有零依赖、零学习成本、零业务代码入侵dotnet下唯一一款全自动分表,多字段分表框架,拥有高性能,零依赖、零学习成本、零业务代码入侵,并且支持读写分离…

centos静默安装oracle关于报错UnsatisfiedLinkError exception loading native library:njni10

静默安装oracle时&#xff0c;日志文件中打印出如下语句 提示Oracle NetConfiguration Assistant failed&#xff0c;原因是找不到libaio.so.1 这是缺少依赖 执行指令 yum -y install libaio* libaio-devel* 删除home文件夹&#xff0c;再次执行 ./runInstaller -silent…

Ant—使用Ant构建一个简单的Java工程(两)

博客《Ant—使用Ant构建一个简单的Java项目&#xff08;一&#xff09;》演示了使用Ant工具构建简单的Java项目&#xff0c;接着这个样例来进一步学习Ant&#xff1a;上面样例须要运行多条ant命令才干运行Test类中的main函数&#xff0c;能不能简化须要运行命令呢&#xff1f;答…

Java Thread Status(转)

public static enum Thread.State extends Enum<Thread.State>线程状态。线程可以处于下列状态之一&#xff1a; 1.NEW 至今尚未启动的线程的状态。 2.RUNNABLE 可运行线程的线程状态。 处于可运行状态的某一线程正在 Java 虚拟机中运行&#xff0c;但它可能正在…

秀!微软《550页图解.Net+WPF完整版》.pdf 附下载!

赶紧看看微软公司基于最新的.netwpf编写文档。对于零基础可以作为.net的快速入门教材&#xff0c;对于高级程序员而言&#xff0c;这也是你的充电之路&#xff01;NO.1资料介绍该手册,全面的介绍.net的新特性&#xff0c;看完这个资料&#xff0c;你能够对.net/c#WPF的新功能&a…

《移动App测试的22条军规》—第1章1.2节移动App的生命周期

本节书摘来自异步社区《移动App测试的22条军规》一书中的第1章&#xff0c;第1.2节移动App的生命周期&#xff0c;作者黄勇&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 移动App的生命周期移动App测试的22条军规&#xff08;1&#xff09;对于还处于…

电子商务应用课程知识整理 第一章-电子商务概述与类型

一、电子商务定义 电子商务&#xff08;Electronic Commerce&#xff0c;简称EC&#xff09;&#xff0c;是指在全球各地广泛的商业贸易活动中&#xff0c;在因特网开放的网络环境下&#xff0c;基于客户端&#xff08;浏览器、移动端&#xff09;/服务器&#xff0c;买卖双方…

电子商务应用课程知识整理 第二章-电子商务相关知识与技术

一、万维网 万维网&#xff08;亦作“网络”、www、Web或World Wide Web&#xff09;&#xff0c;是一个资源空间。在这个空间中包含一些有用的事务&#xff0c;有一个”统一资源标识符“&#xff08;URL&#xff09;表示。这些资源通过超文本传输协议&#xff08;HTTP&#x…

Avalonia跨平台入门第十三篇之Expander控件

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果;今天趁着空闲时间接着去摸索基于Expander控件实现的效果,最终实现的效果如下图:来看看具体的布局:Expander控件样…

《版式设计——日本平面设计师参考手册》—第1章应用对象样式

本节书摘来自异步社区《版式设计——日本平面设计师参考手册》一书中的第1章应用对象样式&#xff0c;作者Designing编辑部,更多章节内容可以访问云栖社区“异步社区”公众号查看。 应用对象样式版式设计——日本平面设计师参考手册对象样式可以帮助我们更有效率地进行工作。 h…

软件概要设计做什么,怎么做

2019独角兽企业重金招聘Python工程师标准>>> 作者&#xff1a;赵磊 博客&#xff1a;http://elf8848.iteye.com 软件概要设计做什么&#xff0c;怎么做 一、软件设计一般流程&#xff1a; 1、先前的软件需求分析阶段&#xff0c;已经搞清楚了 “要解决什么问题”…

开源社区的激励模型

| 作者&#xff1a;庄表伟| 编辑&#xff1a;刘雪洁| 设计&#xff1a;宋传琪| 责编&#xff1a;王玥敏缘起开源社区里的激励模型&#xff0c;其实是一个经久不衰的老话题。4年多以前&#xff0c;我还写过一篇《区块链技术是否会终结开源时代&#xff1f;》&#xff0c;也是在讨…

电子商务应用课程知识整理 第四章-搜索引擎

文章目录一、搜索引擎定义分类1.全文搜索引擎2.目录索引3.元搜索引擎4.垂直搜索引擎工作原理1.抓取网页2.处理网页3.提供检索服务核心算法组成部分发展趋势二、网络蜘蛛三、中文分词基于词典的分词方法基于统计的分词方法基于理解的分词方法分词难点1.歧义识别2.新词识别四、链…