`

jQuery插件ASP.NET应用之AjaxUpload

阅读更多

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

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

 

<script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="Scripts/ajaxupload3.9.js" type="text/javascript"></script>

 HTML 代码:

<style type="text/css">
        #txtFileName {
            width: 300px;
        }
        .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;}
    </style>

上传图片:<input type="text" id="txtFileName" /><div  id="btnUp" style="width:300px;" class=btnsubmit >浏览</div>

<div id="imglist"></div>

 js代 码:

<script type="text/javascript">

    $(function () {
        var button = $('#btnUp'), interval;
        new AjaxUpload(button, {
            //action: 'upload-test.php',文件上传服务器端执行的地址
            action: '/handler/AjaxuploadHandler.ashx',
            name: 'myfile',
            onSubmit: function (file, ext) {
                if (!(ext && /^(jpg|jpeg|JPG|JPEG)$/.test(ext))) {
                    alert('图片格式不正确,请选择 jpg 格式的文件!', '系统提示');
                    return false;
                }

                // change button text, when user selects file
                button.text('上传中');

                // If you want to allow uploading only 1 file at time,
                // you can disable upload button
                this.disable();

                // Uploding -> Uploading. -> Uploading...
                interval = window.setInterval(function () {
                    var text = button.text();
                    if (text.length < 10) {
                        button.text(text + '|');
                    } else {
                        button.text('上传中');
                    }
                }, 200);
            },
            onComplete: function (file, response) {
                //file 本地文件名称,response 服务器端传回的信息
                button.text('上传图片(只允许上传JPG格式的图片,大小不得大于150K)');
                
                window.clearInterval(interval);

                // enable upload button
                this.enable();

                var k = response.replace("<PRE>", "").replace("</PRE>", "");

                if (k == '-1') {
                    alert('您上传的文件太大啦!请不要超过150K');
                }
                else {
                    alert("服务器端传回的串:"+k);
                    alert("本地文件名称:"+file);
                    $("#txtFileName").val(k);
                    $("<img />").appendTo($('#imglist')).attr("src", k);
                }
            }
        });

    });
</script>

 服务器端 ajaxuploadhandler.ashx 代码

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            HttpPostedFile postedFile = context.Request.Files[0];
            string savePath = "/upload/images/";
            int filelength = postedFile.ContentLength;
            int fileSize = 163600; //150K
            string fileName = "-1"; //返回的上传后的文件名
            if (filelength <= fileSize)
            {

                byte[] buffer = new byte[filelength];

                postedFile.InputStream.Read(buffer, 0, filelength);

                fileName = UploadImage(buffer, savePath, "jpg");

            }

            context.Response.Write(fileName);
        }

        public static string UploadImage(byte[] imgBuffer, string uploadpath, string ext)
        {
            try
            {
                System.IO.MemoryStream m = new MemoryStream(imgBuffer);

                if (!Directory.Exists(HttpContext.Current.Server.MapPath(uploadpath)))
                    Directory.CreateDirectory(HttpContext.Current.Server.MapPath(uploadpath));

                string imgname = CreateIDCode() + "." + ext;

                string _path = HttpContext.Current.Server.MapPath(uploadpath) + imgname;

                Image img = Image.FromStream(m);
                if (ext == "jpg")
                    img.Save(_path, System.Drawing.Imaging.ImageFormat.Jpeg);
                else
                    img.Save(_path, System.Drawing.Imaging.ImageFormat.Gif);
                m.Close();

                return uploadpath + imgname;
            }
            catch (Exception ex)
            {
                return ex.Message;
            }

        }

        public static string CreateIDCode()
        {
            DateTime Time1 = DateTime.Now.ToUniversalTime();
            DateTime Time2 = Convert.ToDateTime("1970-01-01");
            TimeSpan span = Time1 - Time2;   //span就是两个日期之间的差额   
            string t = span.TotalMilliseconds.ToString("0");

            return t;
        }
 
分享到:
评论

相关推荐

    jQuery-File-Upload for asp.net MVC

    《jQuery-File-Upload在ASP.NET MVC中的应用详解》 在Web开发中,文件上传功能是必不可少的一部分,尤其是在用户需要提交图片、文档等文件时。jQuery-File-Upload是一款广泛使用的前端文件上传插件,它提供了优雅的...

    jQuery+ajaxupload+imgareaselect+asp.net上传预览截取图像

    在IT行业中,前端开发经常需要处理用户上传图片的需求,而"jQuery+ajaxupload+imgareaselect+asp.net上传预览截取图像"这个主题,就是一种高效且用户体验优秀的解决方案。接下来,我们将深入探讨这些技术及其整合...

    asp.net+jquery+ajax上传文件

    ASP.NET、jQuery 和 AJAX 的组合在 Web 应用开发中被广泛用于实现高效、无刷新的文件上传功能。本文将详细讲解如何利用这些技术来创建一个动态、用户体验友好的文件上传系统。 首先,ASP.NET 是 Microsoft 提供的一...

    asp.net 页面做的批量上传(使用jquery插件)

    在ASP.NET中实现批量上传功能,我们可以利用jQuery插件来简化客户端交互,同时结合服务器端的处理来确保数据的安全性和稳定性。在这个过程中,主要涉及的知识点包括jQuery、ASP.NET的一般处理程序(ASHX)、文件上传...

    ASP.NET使用jquery插件无刷新上传文件

    总的来说,ASP.NET结合jQuery的`ajaxfileupload.js`插件实现了前端无刷新文件上传,它利用`iframe`和`form`避免了页面刷新,通过`jQuery.ajax`接口与服务器进行异步通信。在ASP.NET后端,我们需要设置合适的处理程序...

    asp.net 批量上传文件

    在这个场景下,我们可以使用jQuery库中的`jquery.form`插件来增强页面的交互性,并结合ASP.NET后端技术,实现异步、无刷新的批量文件上传功能。下面我们将详细探讨这个过程中的关键知识点。 首先,`jQuery.form`...

    asp.net 文件批量上传demo[jqueryUploadify]

    ASP.NET 文件批量上传是Web应用开发中的一个常见需求,尤其在处理用户提交的大量数据时。在这个场景下,`jQuery Uploadify`插件是一个非常实用的工具,它为ASP.NET开发者提供了一个简单易用的前端文件上传解决方案。...

    采用asp.net+ajax技术实现的带进度条上传用户控件源码

    4. **进度条实现**:为了显示上传进度,通常会使用JavaScript或jQuery插件(如`jQuery UI Progressbar`或第三方库如`blueimp jQuery File Upload`)。这些库提供了可视化进度条的功能,并通过AJAX调用来更新进度信息...

    asp.net+jquery无刷新上传文件

    在本场景中,我们将探讨如何利用ASP.NET和jQuery实现这一功能,其中涉及到的主要知识点包括AJAX、jQuery插件以及ASP.NET服务器端的处理。 首先,ASP.NET是一个微软开发的用于构建Web应用程序的框架,它提供了丰富的...

    ASP.NET JQuery ImgAreaSelect 实现上传图片在线剪裁

    ASP.NET是一种基于.NET Framework的服务器端编程模型,用于构建功能丰富的、交互性强的Web应用程序。在本示例中,我们将探讨如何结合JQuery ImgAreaSelect插件,实现在ASP.NET环境中上传图片并进行在线剪裁的功能。 ...

    asp.net.JQuery大文件上传案例(完整案例)

    首先,ASP.NET是微软开发的一款用于构建Web应用程序的框架,它提供了丰富的服务器控件和强大的数据绑定功能。在这个案例中,ASP.NET主要负责后端逻辑,如接收文件、存储文件和处理上传请求。 JQuery则是一款广泛...

    Ajax+ASP.net多个大文件上传控件附示例

    - **jQuery File Upload**:这是一个开源jQuery插件,支持多文件上传和大文件分块上传。 - **Plupload**:另一个流行的JavaScript上传组件,支持HTML5、Flash、Silverlight等多种上传方式,适合大文件和多文件上传...

    Asp.Net MVC+Jquery ajaxfileupload实现文件上传(v1.0.0)

    4. **Jquery ajaxfileupload插件**:这是一个轻量级的jQuery插件,专门用于异步文件上传。它通过Ajax方式提交文件,支持进度显示和错误处理。在上述示例中,我们使用`$.ajaxFileUpload`方法发起文件上传请求,当上传...

    jquery file ajax upload插件的实例

    jquery官方插件ajax file upload使用的实例,用asp.net做的服务器端。具体说明请看这里http://www.cnblogs.com/luq885/archive/2007/11/15/959749.html

    asp.net 批量上传图片demo

    在ASP.NET中,可以使用FileUpload控件配合JavaScript或jQuery插件实现这一功能。 4. **大图上传**:处理大图上传时,通常需要考虑文件大小限制、内存管理以及性能优化。ASP.NET可以通过设置`maxRequestLength`属性...

    .net + jquery 多文件上传

    jQuery File Upload是一个常见的插件,它可以提供用户友好的多文件选择、预览、进度显示等功能,并且可以配合AJAX进行异步文件上传。 jQuery File Upload插件允许用户通过拖放或者传统的文件选择对话框来选择多个...

    asp.net图片上传控件

    - AJAXUpload:使用jQuery插件,如jQuery File Upload,可以实现无刷新的图片上传,提供实时的上传进度反馈。 - WebControl:ASP.NET 自带的WebControl,如`&lt;asp:FileUpload&gt;`控件,可以获取用户选择的文件,但不...

    asp.net文件上传带进度条

    在ASP.NET中实现文件上传带进度条的功能,通常涉及到AJAX技术,以便提供更好的用户体验。在传统的文件上传中,用户可能会遇到页面刷新或者长时间无响应的情况,而通过AJAX技术,我们可以实现异步文件上传,同时展示...

    asp.net 上传大文件进度条显示

    一种常见的方式是使用AJAX异步上传,比如jQuery的File Upload插件,它可以提供文件上传进度的回调函数。 以下是使用jQuery File Upload的基本步骤: 1. 引入必要的JavaScript和CSS库,包括jQuery、jQuery UI、...

    Asp.net同时上传多个文件

    例如,使用AJAX技术结合jQuery File Upload插件,或者利用Asp.net MVC的Ajax.BeginForm和jQuery的Ajax方法,可以实现在不刷新页面的情况下上传文件。 5. **进度条显示** 大文件上传时,提供进度条显示可以提升用户...

Global site tag (gtag.js) - Google Analytics