0

ここで何が起こっているのか、私は本当に唖然としています。

フロントエンド側で画像のサイズ変更/圧縮にPreprocess.jsを使用しています。ただし、image.onload の processfile() 関数 (32 行目) では、toDataURL() 文字列を Blob に変換しているため、ファイル オブジェクトとして API に送信できます。これを行うために、dataURItoBlob関数を使用しています。私はこれで終わります:

  image.onload = function() {

    var resized = resizeMe(image, fileinput, max_width, max_height);
    var blob = dataURItoBlob(resized);
    eventImages[0] = blob;

  }

次に、eventImage のコンテンツを API に送信します。

さて、これはうまくいきます。画像のサイズ変更/圧縮が行われ、(成功の応答で) API に送信され、Web ページ内で出力画像を確認できます。

ただし、Chrome/Firefox のコンソール ([リソース] タブ) では、画像の重量が非常に大きくなっています (Chrome で 8MB、Firefox で 1.5MB)。

さらに奇妙なのは、Web ページ内に画像をロードすると、圧縮されたサイズであるかのようにロードされることです。しかし、API からの直接リンクからロードすると、ロードして表示されるまでに時間がかかります (8MB/1.5MB のデータをロードしているかのように)。

何が起きてる?すべてフロントエンド側ですか?ブラウザ、API、または MIME/Content-type に不具合はありますか?

どうもありがとう。

4

1 に答える 1

0

バグが修正されました。これは、API 側のサーバー リグレッションが原因でした。上記のコードはすべて良いです。ありがとう!

于 2015-04-03T23:57:32.203 に答える