0

POSTリクエストから取得したデータを使用してPDFファイルを生成する必要があります。このリクエストへの応答として、生成されたPDFファイルを送信したいと思います。このファイルに対して、ユーザーは「名前を付けてファイルを保存」ダイアログを取得する必要があります。

これはすべてその場で行われるはずです。PDFをディスクに保存して、追加のリクエストで提供したくありません。それはすべて、1つのリクエストで発生するはずです。

しかし、どうすればそのようなことを達成できるのかわかりません。XMLHttRequestを使用すると、「save-file-as」ダイアログを表示できません。一方、フォームを使用する場合、URL暗号化のオーバーヘッドがないとPOSTデータを送信できません。

誰かアイデアがありますか?

4

2 に答える 2

0

結局、2件のリクエストで解決しました。1 つ目は、必要なデータをサーバーに送信し、そこから PDF を作成してから、一時ファイルの ID を返します。2 番目は、pdf をダウンロードし、一時ファイルを削除します。

于 2012-10-15T16:09:55.207 に答える
0

JavaScriptで生成されたフォームフィールドからphpにデータを投稿することでこれを行っています。

var form = $('<form method="post" action="svgoutput/convert.php"> <input type="text"  name="incomingSvgData" value="'+base64_encode(svgDataString)+'"><input type="submit" value="Submit Post"> </form> ');
form[0].submit();

IE の場合、フォームは送信中に dom に置かれます。

PHP 側では、生成と処理 (この場合は SVG から PNG) を行い、次のヘッダーを設定します。

header("Content-Type: YOURMIMETYPE");
header("Content-Disposition: attachment; filename=YOURFILENAME.EXT");
echo YOURDATA;

1 回の投稿で [名前を付けて保存] ダイアログが表示されなくても、スムーズにダウンロードできます。名前を付けて保存が必要な場合は、テキスト ファイルに PHP を使用して [名前を付けて保存] ダイアログ ボックスを表示する方法のように、ヘッダーをいじってみてください。

于 2013-04-11T18:25:59.467 に答える