Chrome から問題なく写真をアップロードできるため、このエラーは Safari (およびモバイル サファリ) の JavaScript に問題があると思います。
私が持っているのは Web ベースのモバイル アプリで、ユーザーは写真をアップロードできる必要があります。しかし、私は高解像度の写真を必要としない/望んでいないので、それらをキャンバスに貼り付け、サイズを変更し、キャンバスを DataURL にキャプチャし、blob に変換します。簡単ですよね ;)
問題のあるJavaScriptがここにあると思われます
var binary = atob(imgTag.src.split(',')[1]); var 配列 = []; 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 でここにあるブログと回答を選択して、ここまでたどり着きました。
サーバー側でもクライアント側でも機能する回答があれば幸いです。他の誰かの問題を解決したので、コカインの宝石の以前のバージョンに変更しようとしましたが、Paperclip 3.1.3 と Rails 3.2.3 を Sass とすべての他の良いもの。
私のコンソールからのエラーは
コマンド :: identify -format %wx%h '/tmp/blob20121214-5750-185epy9[0]' [ペーパークリップ] 処理中にエラーが発生しました: #<ペーパークリップ::エラー::NotIdentifiedByImageMagickError: /tmp/blob20121214-5750-185epy9 は「identify」コマンドで認識されません。>