zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/m110/p/8378126.html
Copyright © 2011-2022 走看看