0

私のphpコードでは、mySQLデータベースから行を取得してCSVファイルに保存しています。ファイル名をコードにハードコーディングしています。アルゴリズムは単純に次のとおりです。

1. Allow user select excel file.
2. Retrieve rows from table, separate column data with commas and build up strings through concatenation.
3. put the build up into the selected file.
4. Close the file.

ただし、作成したCSV文字列をファイルに保存する前に、ユーザーがファイルを選択できるように[名前を付けて保存]ダイアログボックスを表示したいと思います。私が見たすべての提案は、ダウンロードのように見せることについて話しますが、ダウンロードでは、ユーザーがローカルマシンに保存する前に、ファイルがすでに作成されています。私の場合、最初にファイルを選択する必要があります。

また、プライマリパーティションのラベルがC:のマシンからD:のラベルが付いたマシンにアプリケーションを移動する場合は、アプリケーションを移植可能にする必要があるため、ハードコーディングする必要はありません。ありがとう。

4

1 に答える 1

0

ブラウザにファイルをダウンロードさせる(既知のMIMEタイプのときにファイルを開くのではなく)には、次のヘッダーを設定できます。

  • Content-disposition: attachment; filename=fname.ext

[名前を付けて保存]ダイアログでブラウザにプロンプ​​トを表示させる方法はないと思います。ブラウザごとにこれを異なる方法で処理し、通常はローカルユーザー設定です。(つまり、デフォルトのフォルダに自動的にダウンロードする、毎回プロンプトを表示するなど)

別の方法として、ダウンロードファイルの場所と名前を明確に指定する必要がある場合は、「右クリック->名前を付けて保存...」を使用することをユーザーに提案することもできます。

于 2012-08-01T14:02:09.247 に答える