2

キャンバスをbase64文字列として表しています。サーバーがデータを使用して PDF ドキュメントを作成できるように、この文字列をサーバーに渡したいと思います。

データをサーバーに渡そうとすると、「リソースの読み込みに失敗しました: サーバーは 414 (Request-URI Too Long) のステータスで応答しました」という 414 エラーを受け取ります。

クライアント側でイメージを正常にダウンロードしました。実際に画像を取得してダウンロードするのに問題はありませんが、それが表現されるファイルの種類を整形するだけです。

$('#ExportPlanView').click(function (e) {
    //planViewStage.toDataURL(function (e) { window.location = e.replace("image/png", "image/octet-stream")});
    planViewStage.toDataURL(function (dataURL) {
        var output = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");

        $.ajax({
            url: '../PlanView/ExportAsPDF',
            data: { DataURL: output },
            datatype: 'json',
            success: function (stream) { window.location = stream; }
        });
    });
});

出力を小さなチャンクに分割し、各チャンクをサーバーに送信し、サーバーにこれらのチャンクを再構築させ、pdf を作成し、そのファイル ストリームをクライアントに送信してダウンロードをトリガーする適切なソリューションはありますか?

参考までに -- データ URL は最大 105,000 文字です。

4

1 に答える 1

2

大量のデータを渡す必要がある場合は、POST 要求を使用します。$.ajaxデフォルトは GET であるため、タイプを手動で定義する必要があります。

jQuery で POST リクエストを送信するには、次のようなものを使用できます。

$.ajax({
    url: 'blah.php',
    type: 'POST',
    data: { DataURL: output },
    datatype: 'json',
    success: function() { ... }
})
于 2012-03-08T23:52:25.843 に答える