JQuery input file 上传图片

2018-02-28 07:44:22来源:cnblogs.com作者:00C人点击

分享

表单元素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();
复制代码

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台