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

时间:2022-05-20 11:02:41

前台代码:

/*修改头像*/  
    //上传  
    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();  
            }  
        }  
    }  
}  

相关文章