前台方法使用html2canvas将div转换为图片,点击完成,图片以Ajax Post的方式提交到后台接口。存储到文件目录下。

1.保存的图片效果:

使用html2canvas js 自动截取高德地图图片Ajax Post上传到后台

2.前台代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <script src="Jscript/jquery-1.8.2.min.js"></script>
    <script src="Html2canvas_JS/base64.js"></script>
    <script src="Html2canvas_JS/canvas2image.js"></script>
    <script src="Html2canvas_JS/html2canvas.min.js"></script>
</head>
<body>
    <button ;
        };

        $(function () {
            $('#btn_save').click(function () {
                $('#btn_save').attr('disabled', 'disabled');
                setTimeout(function () {
                    createImg();
                },500);
                setTimeout(function() {
                    alert(uploadImg());
                },1500);               
                $('#btn_save').attr('disabled', false);
            });
        });
    </script>
</body>
</html>

3.后台代码,一般处理文件UploadImg.ashx

public class UploadImg : IHttpHandler
    {
        public static void EnsureDirectory(string path)
        {
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
        }

        public void ImgCrop(byte[] bytes, string targetImgPath)
        {
            byte[] imgBytes = bytes;
            FileStream fileStream = new FileStream(targetImgPath, FileMode.Create, FileAccess.Write);
            using (BinaryWriter writer = new BinaryWriter(fileStream))
            {
                writer.Write(imgBytes);
            }
            fileStream.Close();
            fileStream.Dispose();
        }

        public void ProcessRequest(HttpContext context)
        {
            string sourceFileName = context.Request["fileName"];
            string file = context.Request["file"];

            string guid = Guid.NewGuid().ToString();
            string targetImgFileName = guid + "-" + sourceFileName;
            string targetImgRelativeFolderStr = "\\Images\\Upload\\MapScreenshot";
            EnsureDirectory(HttpContext.Current.Server.MapPath(targetImgRelativeFolderStr));
            string targetImgRelativeFolder = HttpContext.Current.Server.MapPath(targetImgRelativeFolderStr);
            string targetImgRelativePath = Path.Combine(targetImgRelativeFolderStr, targetImgFileName);
            string targetImgPath = Path.Combine(targetImgRelativeFolder, targetImgFileName);

            byte[] imgBytes = Convert.FromBase64String(file);
            ImgCrop(imgBytes, targetImgPath);

            context.Response.ContentType = "application/json";
            context.Response.Write("{\"state\":\"success\",\"msg\":\"上传成功\"}");
        }
    }

4.需要的js文件:

jquery-1.8.2.min.js

base64.js

canvas2image.js

html2canvas.min.js

相关文章:

  • 2021-09-01
  • 2021-12-08
  • 2022-12-23
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-27
猜你喜欢
  • 2022-01-04
  • 2021-09-06
  • 2022-02-07
  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案