解决了困扰一周的问题

用了webupload,生成的是base64格式的

<!DOCTYPE HTML>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title></title>
  <link media="all" rel="stylesheet" href="css/AlloyClip.css" type="text/css" />
  <style type="text/css">
.clip, .clip2{
  width: 500px; 
  height: 400px;
  margin: 10px;
  float: left;
}
h2{
  text-align: center;
}
.footer{
  clear: both;
  margin-top: 600px;
  text-align: center;
  font-size: 14px;
  color: #888;
  line-height: 22px;
}
.footer a{
  color: #888;
  text-decoration:none;
}
  </style>
</head>
<body>
<div class="clip"></div>
图片:<img src="" alt="" id="img1"> 
<!--<div class="clip2"></div>-->

<script type="text/javascript" src="js/alloyimage.js"></script>
<script type="text/javascript" src="js/alloyclip.min.js"></script>

<script type="text/javascript">
  new $AC(".clip", 120, 120, 0).ok(function(base64, aiObj){
      console.log(typeof(base64));
      document.getElementById("img1").src=base64;
      //aiObj.saveFile("AlloyCliped.jpg", 0.8);
  });


</script>


</body>
</html>

然后项目是.net mvc获取这个并且存入数据库或者存入文件夹。

1.sql数据库字段varchar(8000)都不够,字段改成二进制的

2.上传有时候进不了后台,因为我的上传是ajax传的 data类型是"text"

 <script type="text/javascript">
  new $AC(".clip", 120, 120, 0).ok(function(base64, aiObj){
      //console.log(base64);
      document.getElementById("img1").src = base64;
      var bs4 = base64.substring(22);
      console.log(bs4);
      //aiObj.saveFile("AlloyCliped.jpg", 0.8);
      $("#ceshi").click(function () {
          $.ajax({
              url: "/Clip/getbase",
              
              type: "POST",
              async: false,
              xhrFields: { withCredentials: true },
              dataType: "text",
              data:{imgbase:bs4},
              success:function(data){
                  console("成功:"+data);
              },
              error:function(data){
                  console("失败:"+data);
              }
          });
      });
  });
    </script>

原因是 public ActionResult getbase(string imgbase)

括号里面用对类型

3.我还得继续做项目,直接看代码吧,嘿嘿

public ActionResult getbase(string imgbase)
        {
            ClipBase64 cb = new ClipBase64();
            cb.imageID = 5;
            // byte[] base64  这个是byte的
            // string ceshibase 这个是string 的
            //cb.ceshibase = imgbase;
            Encoding.Default.GetBytes(imgbase);
            byte[] imgbyte = System.Convert.FromBase64String(imgbase);
            //MemoryStream ms = new MemoryStream(imgbyte, 0, imgbase.Length);

            //第一种可以这样
            //System.IO.File.WriteAllBytes(@"E:\test\1.jpg", imgbyte);
            //第二种
            MemoryStream ms = new MemoryStream(imgbyte);
            FileStream fs = new FileStream(@"E:\test\1.jpg", FileMode.Create);
            ms.WriteTo(fs);
            ms.Close();
            fs.Close();


            //int result = cm.clipImg(cb);
            //if (result > 0)
            //{
            //    ViewData["msg"] = "成功";
            //}
            //else
            //{
            //    ViewData["msg"] = "失败";
            //}
            return View();
        }


posted @ 2017-03-27 14:35  Martin_lee  阅读(177)  评论(0编辑  收藏  举报