使用 Ajax 在 Ruby on Rails 中保存图像

save image with ajax in ruby on rails

本文关键字:保存 图像 Rails on Ajax Ruby 使用      更新时间:2023-09-26

我不知道如何在 AJAX 中使用 Ruby 在轨道上保存图像,这是我在 github 中的存储库,github.com/luis77/EdiTor22 请将其检查出来,我已经尝试了 2 天,但我不知道出了什么问题。例如,检查视图附件/new 以下是带有 ajax 代码的 javascript 中的代码:

 <script>
    var canvas = document.createElement('canvas');
    var context = canvas.getContext('2d');
    var centerX = canvas.width / 2;
    var centerY = canvas.height / 2;
    var radius = 70;
    context.beginPath();
    context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
    context.fillStyle = 'green';
    context.fill();
    context.lineWidth = 5;
    context.strokeStyle = '#003300';
    context.stroke();
    document.body.appendChild(canvas)

    var dataURL =  canvas.toDataURL('image/png');


   // Convert dataURL to Blob object
      function dataURLtoBlob(dataURL) {
    // Decode the dataURL    
    var binary = atob(dataURL.split(',')[1]);
    // Create 8-bit unsigned array
    var array = [];
    for(var i = 0; i < binary.length; i++) {
        array.push(binary.charCodeAt(i));
       }
    // Return our Blob object
    return new Blob([new Uint8Array(array)], {type: 'image/png'});
      }


       // Get our file
      var file= dataURLtoBlob(dataURL);
      // Create new form data
      var fd = new FormData();
     // Append our Canvas image file to the form data
      fd.append("image", file);
      // And send it
      $.ajax({
         url: "/attachments/change2",
         type: "POST",
         data: fd,
         processData: false,
         contentType: false,
      });


    </script>

它在路由中指定:

  post "attachments/change2"

以及控制器中的方法,

但不会保存,我需要此代码的帮助,请帮忙。

假设你的JavaScript代码是正确的,并且帖子数据正确地进入服务器,我可能会使用CarrierWave或PaperClip之类的东西来处理你的文件上传。