0

我相信这个错误是我在 Safari(和移动 safari)中的 javascript 的问题,因为我可以从 chrome 上传照片没问题。

我有一个基于网络的移动应用程序,用户需要能够上传照片。但我不需要/想要高分辨率的照片,所以我将它们粘贴在画布中,调整大小,将画布捕获为 DataURL,然后转换为 blob。很简单,对吧;)

我怀疑有问题的 javascript 在这里

  var binary = atob(imgTag.src.split(',')[1]);
            变量数组 = [];
            for(var i = 0; i < binary.length; i++) {
                array.push(binary.charCodeAt(i));
             }


    var formData = new FormData();
   formData.append('photo[image]',new Blob([new Uint8Array(array)]));


但我必须承认,我不熟悉将图像流式传输到字符串等。我在 StackOverflow 上关注了一些博客和答案,让我走到了这一步。

我很高兴得到一个在服务器端或客户端都有效的答案。我尝试更改为可卡因 gem 的早期版本,因为这解决了其他人的问题,但我被锁定在我的版本中,因为我使用的是 Paperclip 3.1.3 和 rails 3.2.3 以及 Sass 和所有其他好东西。

我的控制台的错误是

命令 :: identify -format %wx%h '/tmp/blob20121214-5750-185epy9[0]'
[回形针] 处理时收到错误:#<Paperclip::Errors::NotIdentifiedByImageMagickError: /tmp/blob20121214-5750-185epy9 无法被“识别”命令识别。>
4

1 回答 1

0

我发现这个https://github.com/blueimp/JavaScript-Canvas-to-Blob可以在所有平台上将画布转换为 blob,它可以在 ios 上的 safari 中使用,这正是我所需要的。

于 2012-12-15T02:33:00.417 回答