c# base64图片编码使用

11 篇文章 0 订阅

base64图片编码C#方法

页面jQ提交

  function upData() {

        var url = "/file/UploadBase64";
        var timestamp = Date.parse(new Date());
        captureCount = timestamp / 1000;
        //当前时间戳为:1403149534

        var fid = document.getElementById("FID");
        alert(fid);
        var filename = fid.value + "_" + captureCount + ".PNG";
        alert(filename);
        var data = { base64Data: base64Data, filename: filename };
        console.log(data);
        $.ajax({
            url: url,
            type: "post",
            data: data,
            dataType: "json",
            success: function (data) {
                if (data.success == true) {
                    var obj = document.getElementById("Scan");
                    obj.value = data.filename;
                   
                    // alert(picPath)
                    if (data.filename.length > 10) {
                        $('#pic').attr('src', '/upload/image/' + data.filename);
                    }
                    console.log(data.filename);
                    console.log("上传成功");
                } else {
                    alert("上传失败");
                }
            },
            error: function () {
                console.log("上传失败");
            }
        });
    }


后台接收方法

  [HttpPost]
        public JsonResult UploadBase64(string base64Data,string filename)
        {  
            string rootPath = Server.MapPath("~/UploadPIC/images/");
            var saveName = filename;
            var savePath=rootPath + saveName;
            byte[] arr2 = Convert.FromBase64String(base64Data);
            using (MemoryStream ms2 = new MemoryStream(arr2))
            {
                System.Drawing.Bitmap bmp2 = new System.Drawing.Bitmap(ms2);
                只有把当前的图像复制一份,然后把旧的Dispose掉,那个文件就不被锁住了,
                这样就可以放心覆盖原始文件,否则GDI+一般性错误(A generic error occurred in GDI+)
                //System.Drawing.Bitmap bmpNew = new System.Drawing.Bitmap(bmp2);
                //bmp2.Dispose();
                //bmp2 = null;
                var ext = savePath.Substring(savePath.Length - 3).ToLower();
                switch (ext)
                {
                    case "jpg": bmp2.Save(savePath, System.Drawing.Imaging.ImageFormat.Jpeg);
                        break;
                    case "bmp": bmp2.Save(savePath, System.Drawing.Imaging.ImageFormat.Bmp);
                        break;
                    case "gif": bmp2.Save(savePath, System.Drawing.Imaging.ImageFormat.Gif);
                        break;
                    case "png": bmp2.Save(savePath, System.Drawing.Imaging.ImageFormat.Png);
                        break;
                    case "ico": bmp2.Save(savePath, System.Drawing.Imaging.ImageFormat.Icon);
                        break;
                    
                }
                bmp2.Dispose();
            }
            var success = System.IO.File.Exists(savePath);
            var result = new
            {
                success=success,
                filename = saveName
            };
            return Json(result );
        }


  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值