• JQuery input file 上传图片


    表单元素file设置隐藏,通过其他元素打开:

    .imgfile为input file

     $(".ul").click(function () {return $(".imgfile").click();
        });

    JS部分:

    复制代码
    $(".imgfile").change(function () {
            var file = $(".imgfile").get(0).files[0];
            var reader = new FileReader();
            reader.readAsDataURL(file);
            reader.onloadend = function () {
                $("#Image1").attr("src", reader.result);
            }
        });
    
    $("#register2").click(function () {var IMG_BASE = $("#Image1").attr("src"); //要上传的图片的base64编码
            var IMG_ROUTE = $(".imgfile").val();//获取上传图片路径,为获取图片类型使用
            var IMG_ENDFOUR = IMG_ROUTE.substr(IMG_ROUTE.length - 4, 4);//截取路径后四位,判断图片类型
            var IMG_FOMATE = "jpeg"; //图片类型***
            if (IMG_ENDFOUR.trim() == ".jpg")
                IMG_FOMATE = "jpg";
            else if (IMG_ENDFOUR.trim() == ".png")
                IMG_FOMATE = "png";
            else if (IMG_ENDFOUR.trim() == ".bmp")
                IMG_FOMATE = "bmp";
            //图片正式开始上传
            $.ajax({
                type: "post",
                url: "server/head.ashx",
                data: { 'imgBase': IMG_BASE, 'imgFormat': IMG_FOMATE },
                dataType: "text",
                success: function (data) {
                    //data为返回的图片路径
            });
        });
    复制代码

    一般处理程序部分:

    复制代码
    using System.IO; //需要这三个命名空间
    using System.Drawing;//***
    using System.Drawing.Imaging;//***
    
    
            string imgBase = context.Request["imgBase"];//传递过来的base64编码
            string imgFomate = context.Request["imgFormat"];//传递过来的图片格式
            string end = "1";
            string imgReadyBase = imgBase.Substring(imgBase.IndexOf("4") + 2);//截取base64编码无用开头
            byte[] bytes = System.Convert.FromBase64String(imgReadyBase);//base64转为byte数组
            MemoryStream ms = new MemoryStream(bytes);//创建内存流,将图片编码导入
            Image img = Image.FromStream(ms);//将流中的图片转换为Image图片对象
                                             //利用时间种子解决伪随机数短时间重复问题
            Random ran = new Random((int)DateTime.Now.Ticks);
            //文件保存位置及命名,精确到毫秒并附带一组随机数,防止文件重名,数据库保存路径为此变量
            string s = ran.Next().ToString();
            string serverPath = "../head/" + DateTime.Now.ToString("yyyyMMddhhmmssms") +s+ "." + imgFomate;
            //路径映射为绝对路径
            string path = context.Server.MapPath(serverPath);
            ImageFormat imgfor = ImageFormat.Jpeg;//设置图片格式
            if (imgFomate == "png")  imgfor = ImageFormat.Png;
            try
            {
                img.Save(path, imgfor);//图片保存
            }
            catch { end = "0"; }
            end = "head/" + DateTime.Now.ToString("yyyyMMddhhmmssms") +s+ "." + imgFomate;
            context.Response.Write(end);
            context.Response.End();
    复制代码
  • 相关阅读:
    网络性能测试工具iperf详解
    linux下的抓包工具tshark和 tcpdump用法
    linux下网络发包工具
    >/dev/null 2>&1 的作用
    linux screen 命令详解
    wget 命令操作实例
    Centos Linux release 7.2.15ll (core) yum 安装java环境
    日志监听
    java 身份证工具类
    java 生成微信的二维码 工具类
  • 原文地址:https://www.cnblogs.com/1711643472qq/p/8478041.html
Copyright © 2020-2023  润新知