• asp.net 基于ajaxfileupload.js 实现文件异步上传


    前台代码:  

    /*修改头像*/  
        //上传  
        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();  
                }  
            }  
        }  
    }  
  • 相关阅读:
    论 设计模式及项目架构的作用
    Linux根据进程号查找其程序文件路径 及 lsof 命令使用
    Synchronized 原理
    Seata 中类SPI使用机制分析
    redisson spring boot starter 做分布式锁
    TTFB 时间过长
    ShardingSphere Hint模式 SpringBoot + Mybatis
    Core源码(十三)Stack和ConcurrentStack
    C#源码(十二) HashSet
    Core源码(十一)Queue
  • 原文地址:https://www.cnblogs.com/ranran/p/4121490.html
Copyright © 2020-2023  润新知