asp.net+ajaxfileupload.js 实现文件异步上传代码分享

所属分类: 网络编程 / ASP.NET 阅读数: 229
收藏 0 赞 0 分享

由于代码很简单,这里就闲话不多说了,直接上代码,小伙伴们自己研读代码就明白了。

前台代码: 

复制代码 代码如下:

/*修改头像*/ 
    //上传 
    function _sc() { 
        $(".ckfile").html("").css("color", "#535353"); 
        $("#_userImgPath").val(""); 
        var str = $("#file").val(); 
        if ($.trim(str) == "") { 
            $(".ckfile").html("请选择文件。").css("color", "red"); 
            return false; 
        } 
        else { 
            var postfix = str.substring(str.lastIndexOf(".") + 1).toUpperCase(); 
            if (postfix == "JPG" || postfix == "JPEG" || postfix == "PNG" || postfix == "GIF" || postfix == "BMP") { 
                $('#showimg').attr('src', 'Images/loading.gif').attr("title", "上传中,请稍后…"); 
                var path = "Upload/UserImg"; 
                $.ajaxFileUpload({ 
                    url: '/Upload.aspx?path=Upload|UserImg&shape=100*100', 
                    secureuri: false, 
                    fileElementId: 'file', 
                    dataType: 'text', 
                    success: function (msg) { 
                        if (msg.lastIndexOf(path) == -1) { 
                            $(".ckfile").html(msg).css("color", "red"); 
                        } 
                        else { 
                            $('#showimg').attr('src', msg).attr("title", "我的头像"); 
                            $("#_userImgPath").val(msg); 
                        } 
                    } 
                }); 
            } else { 
                $(".ckfile").html("文件格式错误。").css("color", "red"); 
                return false; 
            } 
        } 
    } 

后台代码:

复制代码 代码如下:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using SS.Upload; 
using WFC.Fenxiao; 
namespace wanfangcheng 

    public partial class Upload : BasePage 
    { 
        //文件大小 1024 kb 
        private long size = 1024; 
        //文件类型 
        private string type = ".jpg|.jpeg|.png|.gif|.bmp"; 
        //保存名称 
        string name = ""; 
        //保存路径 
        private string path = @"Upload/UserImg"; 
        //保存大小 
        private string shape = "100*100"; 
        protected void Page_Load(object sender, EventArgs e) 
        { 
            HttpFileCollection files = Request.Files; 
            if (files != null && files.Count > 0) 
            { 
                name = BaseRole.Instance.UserId.ToString(); 
                if (Request.QueryString["size"] != null) 
                { 
                    size = Convert.ToInt32(Request.QueryString["size"]); 
                } 
                if (Request.QueryString["path"] != null) 
                { 
                    path = Request.QueryString["path"].ToString().Trim().Replace('|', '/'); 
                } 
                if (Request.QueryString["name"] != null) 
                { 
                    name = Request.QueryString["name"].ToString().Trim(); 
                } 
                if (Request.QueryString["shape"] != null) 
                { 
                    shape = Request.QueryString["shape"].ToString().Trim(); 
                } 
                uploadMethod(files); 
            } 
        } 
        /// <summary> 
        /// 上传图片 
        /// </summary> 
        /// <param name="hc"></param> 
        public void uploadMethod(HttpFileCollection hc) 
        { 
            HttpPostedFile _file = hc[0]; 
            //文件大小 
            long _size = _file.ContentLength; 
            if (_size <= 0) 
            { 
                Response.Write("文件错误。"); 
                Response.End(); 
                return; 
            } 
            if (size * 1024 < _size) 
            { 
                Response.Write("文件过大,最大限制为" + size + "KB。"); 
                Response.End(); 
                return; 
            } 
            //文件名 
            string _name = _file.FileName; 
            //文件格式 
            string _tp = System.IO.Path.GetExtension(_name).ToLower(); 
            if (type.IndexOf(_tp) == -1) 
            { 
                Response.Write("文件格式错误。"); 
                Response.End(); 
                return; 
            } 
            //保存路径 
            string _path = HttpContext.Current.Server.MapPath(path) + @"/" + name + _tp; 
            try 
            { 
                int w = Convert.ToInt32(shape.Split('*')[0]); 
                int h = Convert.ToInt32(shape.Split('*')[1]); 
                ImageHelper.CutForCustom(_file, _path, w, h, 50); 
                Response.Write(path + @"/" + name + _tp); 
            } 
            catch (Exception) 
            { 
                Response.Write("哎呦,出错了。"); 
                Response.End(); 
            } 
        } 
    } 

是不是很实用,也很简单易懂呢,以上是自己项目中使用的代码,小伙伴们如果发现有问题的地方,还请告之。谢谢

更多精彩内容其他人还在看

.NET Core源码解析配置文件及依赖注入

这篇文章我们设计了一些复杂的概念,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等
收藏 0 赞 0 分享

.NET Corek中Git的常用命令及实战演练

这篇文章将通过故事的形式从Git的历史谈起,并讲述Git的强大之处。然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制
收藏 0 赞 0 分享

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

如何利用FluentMigrator实现数据库迁移

这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

ASP.NET Core利用Jaeger实现分布式追踪详解

这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解.net core webapi 前后端开发分离后的配置和部署

这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

这篇文章主要介绍了ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

.net 4.5部署到docker容器的完整步骤

这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

.net core并发下线程安全问题详解

这篇文章主要给大家介绍了关于.net core并发下线程安全问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多