2013-03-28 47 views
1

我的项目是asp.net MVC 3,我使用下面的脚本导出帆布数据:KineticJS - asp.net MVC - Json的帆布数据保存为PNG downladable文件

$("#savePNG").click(function() { 
       stage.toDataURL({ 
        callback: function (dataUrl) { 
         dataUrl = dataUrl.replace('data:image/png;base64,', ''); 
         $.ajax({ 
         type: 'POST', 
         url: "../../Home/UploadImage", 
         data: '{ "imageData" : "' + dataUrl + '" }', 
         contentType: 'application/json; charset=utf-8', 
         dataType: 'json', 
         success: function(msg) { 
          alert('Image saved successfully !'); 
         } 
        }); 
       } 
       }); 
      }); 

控制器脚本:

  public FileContentResult UploadImage(string imageData){ 
      byte[] data = Convert.FromBase64String(imageData); 
        return File(data, "image/png", "test.png"); 
     } 

它不工作,任何建议,在此先感谢。

回答

1

这里是我的解决方案,以防万一有人试图做同样的

在控制器:

public JsonResult UploadImage(string imageData) 
     { 
      byte[] data = Convert.FromBase64String(imageData); 
      MySession.Current._pngtoPrint = data; 

      return Json(new { success = true }, JsonRequestBehavior.AllowGet); 
     } 

     public FileContentResult ExportPng() 
     { 
      byte[] contents = MySession.Current._pngtoPrint; 
      return File(contents, "image/png", "test" + ".png"); 
     } 

在查看:

stage1.toDataURL({ 
        callback: function(dataUrl) { 
         dataUrl = dataUrl.replace('data:image/png;base64,', ''); 
         $.ajax({ 
          type: 'POST', 
          url: "../../Home/UploadImage", 
          data: '{ "imageData" : "' + dataUrl + '" }', 
          contentType: 'application/json; charset=utf-8', 
          dataType: 'json', 
          success: function(data) { 
           // alert('Image saved successfully !'); 
           window.location("Home/ExportPng"); 
          } 
         }); 
        } 
       });