zoukankan      html  css  js  c++  java
  • ajaxfileupload.js无刷新异步上传图片截取头像Demo

    第一步:导入ajaxfileupload.js文件

    第二步:新建一个aspx,在body里面创建一个文件域,一个上传按钮

    <body>
        <input type="file" name="file" id="fileId" />
        <input type="button"  value="上传" id="uploadBtn" />
        <br />
        <img src="" id="img" />
    </body>

    第三步:客户端代码

    <script>
            $(function () {
                $("#uploadBtn").click(function () {
                    $.ajaxFileUpload({
                        url: 'FileUpload.ashx',//执行上传处理的文件地址
                        fileElementId: 'fileId',//file控件的id属性的值,要求这个控件要有name属性,用于在服务器端接收                  
                        success: function (data) {//成功的回调函数,内部处理会加上html标签,
                            $("#img").attr("src", $(data).text());
                        }
                    });
                });
            });
            //$.ajaxFileUpload({
            //    url: 'PhotoGet.ashx',//执行上传处理的文件地址
            //    secureuri: false,//是否加密,一般是false,默认值为false
            //    fileElementId: 'UploadImg',//file控件的id属性的值,要求这个控件要有name属性,用于在服务器端接收
            //    data: {//额外传递的数据,使用json,此时必须设置type为post
            //        type: 1
            //    },
            //    type: 'post',//请求方式,如果传递额外数据,必须是post
            //    success: function (data) {//成功的回调函数,内部处理会加上html标签,data是DOM对象,通过$(data)转成html标签
            //        $("#img1").attr("src", $(data).text());
            //    }
            //});
        </script>

    第四步:服务端代码

    public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                int type = int.Parse(context.Request["type"]);
                if (type == 2)
                {
                    CaptureImage(context);
                }
                else if (type == 1)
                {
                    UploadImageFile(context);
                }
    
            }
    
            private void CaptureImage(HttpContext context)
            {
                int x1 = int.Parse(context.Request["x1"]);
                int y1 = int.Parse(context.Request["y1"]);
                int width = int.Parse(context.Request["width"]);
                int height = int.Parse(context.Request["height"]);
    
                Bitmap smallImg = new Bitmap(width,height);
                Graphics gh = Graphics.FromImage(smallImg);
                string bigImgPath = context.Request["img"];
    
                Bitmap bigImg = new Bitmap(context.Request.MapPath(bigImgPath));
                gh.DrawImage(bigImg, new Rectangle(0, 0, width, height), new Rectangle(x1, y1, width, height), GraphicsUnit.Pixel);
                string bigImgFileName = Path.GetFileName(bigImgPath);
                string bigImgExten = Path.GetExtension(bigImgPath);
                string smallPath = context.Request.MapPath(bigImgPath.Substring(0, bigImgPath.IndexOf(bigImgExten)) + "_" + "portrait" + bigImgExten);
                smallImg.Save(smallPath,System.Drawing.Imaging.ImageFormat.Jpeg);
            }
    
            private static void UploadImageFile(HttpContext context)
            {
                HttpPostedFile file = context.Request.Files["file"];
                if (file != null)
                {
                    string fileName = Path.GetFileName(file.FileName);
                    string fileExten = Path.GetExtension(fileName);
                    if (fileExten == ".jpg")
                    {
                        string dir = "/ImageUpload/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";
                        if (!Directory.Exists(context.Request.MapPath(dir)))
                        {
                            Directory.CreateDirectory(context.Request.MapPath(dir));
                        }
                        string fullFilePath = dir + Guid.NewGuid().ToString() + "_" + fileName;
                        file.SaveAs(context.Request.MapPath(fullFilePath));
                        context.Response.Write(fullFilePath);
                    }
                }
            }
    

      

  • 相关阅读:
    什么是Python???
    python中闭包详解
    python类中的__init__和__new__方法
    python中不需要函数重载的原因
    装饰器详解
    IDEA中导入非maven项目(从eclipse中迁移过来的)
    CLion、cmake、mingw、openCV安装
    跨域问题的一些思考
    maven中jar包手动导入
    对于序列化的理解
  • 原文地址:https://www.cnblogs.com/BOSET/p/6916387.html
Copyright © 2011-2022 走看看