ダウンロード後の保存ディレクトリ選択の制御

このQ&Aのポイント
  • WEBからCSVファイルのダウンロード時に表示される「保存」ダイアログで、固定のディレクトリを表示し、他のディレクトリの選択を制限する方法を探しています。
  • サーバ側はPHPで制御は難しいため、ActiveXなどを使用して実現できるのかどうかについて教えてください。
  • また、ダイアログのデフォルトの保存先を「デスクトップ」ではなく任意のディレクトリに指定する方法についても知りたいです。
回答を見る
  • ベストアンサー

ダウンロード後の保存ディレクトリ選択の制御

現在WEBからCSVファイルをダウンロードし、 「開く」「保存」を選択するダイアログで、 「保存」を選択した後に表示されるディレクトリ選択で、 固定のディレクトリを表示し、また他のディレクトリを選択できなくするという方法を探しています。 例としては、CSVファイルを保存するを選んだら、 最初に表示されるディレクトリ選択で『デスクトップ』でなく、『C:\temp』などに強制的に指定でき、かつ他のディレクトリを選択できなくする方法です。 サーバ側はPHPなのですが、PHPでは制御できそうも無いので、ActiveXなどでできないかと考えているのですが、 ActiveXが正直どこまでできるのかわからないので、 果たして可能なのかどうか、知っている方教えてください。

  • kurus
  • お礼率63% (7/11)

質問者が選んだベストアンサー

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.4

ActiveXを考えているということなのでIE限定でも大丈夫なのでしょうか? そういうことならXMLHttpとFileSystemObjectを使ってスクリプトを組んで自動的にダウンロードしてしまうのが簡単だと思います。簡単なサンプルスクリプトを作ってみました。 <html> <head> <title>Download test</title> <script type="text/javascript"> <!-- function download(){ var url = location.protocol + "//" + location.host + "/xxx.php"; var savePath = "C:\\temp\\xxx.csv"; var xmlHttp = new ActiveXObject("MSXML2.XMLHttp"); xmlHttp.open("GET", url, false); xmlHttp.send(); var fso = new ActiveXObject("Scripting.FileSystemObject"); var stream = fso.createTextFile(savePath, true); stream.write(xmlHttp.responseText); stream.close(); alert("ダウンロード完了"); } // --> </script> </head> <body> <input type="button" value="Download" onClick="download();"> </body> </html> 適当に変更して試してみて下さい。 ちなみにActiveXの警告が出ますが、サイトを信頼済みサイトに登録して、信頼済みサイトのレベルのカスタマイズで「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化と実行」を有効にすると警告が出なくなります。

kurus
質問者

お礼

サンプルご提示ありがとうございます。 指定するphpにはダウンロードレスポンスを返す機能を実装しておけばよいのでしょうか? でも貴重な情報ありがとうございます。 もう少し自分で調べてみます。ありがとうございました。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>クライアント側にはある帳票用のアプリケーションがあり、保存先のディレクトリ(この場合はC:\temp)は必ずあるという設定です。 そういうことなら、帳票用アプリケーションからファイルのゲットをするようにしたらどうでしょう

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

もし、C:\temp が無かったらどうなるのでしょうか?

kurus
質問者

補足

クライアント側にはある帳票用のアプリケーションがあり、保存先のディレクトリ(この場合はC:\temp)は必ずあるという設定です。

  • linus1974
  • ベストアンサー率19% (71/370)
回答No.1

なぜ、そういうちょっと変わったような運用 になるのか補足説明があると、まったく違う 解決法を誰かが教えてくれるかもしれません。

kurus
質問者

補足

すみません。補足いたします。 環境はイントラネットで、WEBで表示した帳票データを、 ダウンロードし、クライアントアプリケーションで、データを使用するということが目的です。 クライアント側のアプリケーションは、固定のディレクトリ内のCSVファイルを読み込み、そこにあるCSVデータを使用するというものです。 なので他のディレクトリに保存されてしまうとすぐにデータが使えなく、いちいちファイルを選択するのが面倒くさいということなので、ダウンロードしたCSVファイルを固定のディレクトリに保存したいということです。 ダウンロードにこだわらず、 クライアントからのリクエストを受けたら、WEBサーバ側でCSVファイルを作成し、ローカルに保存させる、もしくわ送信するといった方法はありますでしょうか?

関連するQ&A

  • ダウンロードファイルの保存ディレクトリについて

    PHPでCSVをダウンロードするプログラムを作成しております。そこで質問ですが、ダウンロードダイアログが表示され、保存ボタンを押下したときに保存するディレクトリを常に同じ場所にする方法はあるのでしょうか?あるようでしたら方法を教えて下さい。

    • ベストアンサー
    • PHP
  • 画像の保存ディレクトリについて

    質問させてください。 OSがWindows環境(98, 2000など)で、bmp, jpg等の 画像を保存する際に、通常ツールメニューの [ファイル]-[名前を付けて保存]を選択するとデフォルトで 必ず"マイドキュメント"となっています。 しかも、保存を繰り返していると保存したいディレクトリに なっている時もあります。 どのようなタイミングで変更されるのかはよくわかりませんが、 この最初に表示されるディレクトリを変更する方法ってないのでしょうか? 例えば、D:\tempディレクトリなど…。 分かる方がいましたら、回答宜しくお願いします。

  • Builder でディレクトリーを選択したい。

    Boland C Builderでダイアログの方式でディレクトリーを選択したいのですが、DIALOGには用意されていない様です。何か良い方法は無いでしょうか。現在はSaveDialogを使用して SaveDialog1->FileName = "$"; SaveDialog1->Execute(); String FileName = SaveDialog1->FileName; String DirName = ExtractFileDir(FileName); の様に組んでディレクトリーを選択していますが、これですとボタンは"保存"に成ってしまうし、ダイアログでファイル名を消してしまうと選択出来なく成ります。 何か良い方法があればお教え下さい。

  • CSVファイルのダウンロード

    <環境> PHP4.3.2 Windows2000 PostgreSQL RedHat Linux <求めていること> DBのデータをCSVファイルに書き出し、 ダウンロードボタン押下で ダイアログがアップしファイル保存ディレクトリ選択、保存。 <現在のソース> サーバーにtest.csvファイル作成後、 現在HTMLでダウンロードボタン押下でdownload.phpを呼び出し <input type=button value="ダウンロード" onClick="location.href='download.php'"> ---------------- download.php ------------------- <?php // 1.ディレクトリ指定 //$filename="/test/test.csv"; // 2.ディレクトリ指定なし $filename = "test.csv"; header("Content-disposition: attachment; filename=$filename"); header("Content-type: application/octet-stream"); ?> ---------------- download.php ------------------- 現在、 1番のディレクトリ指定だと downloadというファイルがダウンロードされるダイアログがアップし ダウンロードされます。 2番のディレクトリ指定なしだと もちろん空のtest.csvファイルがダウンロードされます。 実現したいのは/test/test.csvのファイルをダウンロードすることです。 色々なサイトで探してみて試しているのですが 初心者なもので、行き詰まってしまいました。 申し訳ありませんが ご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • ダウンロード後の「開く」「保存」の選択をできないようにしちゃった

    インターネットエクスプローラでファイルをダウンロードしようとするとダイアログボックスが出てきて開くか保存するか選択するのですが、それを選択できないようにする項目にチェックしてしまいました。 その後はダイアログボックスが開かずに自動的にダウンロードが始まるようになってしまいました。 こいつをどうにか元に戻したいのですがちょっと分かんないので教えて!

  • CSVファイルを任意のディレクトリに作成する方法につきまして

    CSVファイルを任意のディレクトリに作成するマクロを 作成しております。抜粋は下記です。 '(1)ディレクトリを指定するダイアログ表示(初期ファイル名はwOutputFileName) Application.Dialogs(xlDialogSaveAs).Show wOutputFileName '(2)ディレクトリのパスを取得 Current_path = CurDir '(3)wOutputFileNameにパスを代入 wOutputFileName = Current_path & "\" & wOutputFileName その後、(3)のファイルをオープンし、CSVとするデータを登録します。 ところが、(1)での指定で、自分の元ファイル(マクロのエクセルファイル)が名前をwOutputFileNameに変えて保存されるため 「書き込みができません」 というエラーが発生します。 作成したCSVファイルをダイアログにてディレクトリを 指定して保存する方法を教えていただけませんか? よろしくお願いいたします。

  • ユーザにディレクトリを選択させる方法

    ダイアログをだしてユーザにディレクトリを選択させ その指定したディレクトリにファイルを作成する処理 を行いたいのですがわかりません。 ※ユーザがダイアログから選んだディレクトリ名がStringで取得できる までを教えてください。ファイル作成方法は調査済みです。 どういうプログラミングでをすればいいでしょうか ダイアログの設定方法(プロパティ等)やプログラミング コードをできれば詳細に教えてください プログラマ1年目の新米でわからない事だらけで 調査が思う様に進んでいません。宜しくお願いいたします ちなみにVB2005を利用しています。

  • CSVファイルの作成→DownLoad

    データベースにあるデータをカンマ区切りでCSVファイルとしてユーザーにダウンロードさせようとしています。 今のやりかたは、down.phpの中で一度temp.csvという名前のファイルを作って、header("Location:temp.csv");としています。 ダウンロードのダイアログボックスが表示されるのはいいんですが、ファイルを保存する場所を指定するとき、なぜかデフォルトのファイル名が「temp.xls」になってしまいます。 これをtemp.csvにする方法はないでしょうか。 っていうかなんで拡張子変わっちゃうんでしょうか。。。 それと、ダウンロードのさせかたですが、このような方法でいいのでしょうか。 一応、自分の思っている通りの動きはするので、いいのかなーとは思っていますが。。。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • IEでのダウンロードするディレクトリについて

    よく見るサイトが2つありまして(仮にサイトAとサイトBにします) そのサイトからファイルを毎日のようにダウンロードします。 通常、ダウンロードの選択をすると一番最後にダウンロードしたディレクトリが表示されると思います。 AB問わず同じディレクトリに保存はしたくありません。 IEでサイトAでダウンロードした場合、次に表示されるディレクトリはサイトAで指定したパスになり、サイトBでダウンロードする際にはまたパスを指定しなければなりません。 ここで質問なんですが任意のサイトからのダウンロードは任意のディレクトリになる方法や ファイル名(拡張子)などで任意のディレクトリになる方法。 もしくはその様な機能があるブラウザかIEの拡張ツールなど教えて頂ければ助かります。 IEはver6.0でOSは98とXPのデュアルブートです。ページはSSLでダウンロードするファイルは基本的に.csvです。オートパイロットではうまくいきませんでした。 この操作が毎日何回もとなると面倒なのでよろしくお願いします。

  • ダウンロードファイルを保存する際

    ネット上からcsvデータをダウンロードする際に、名前を付けて保存をするダイアログボックスのファイルの種類が"テキストファイル"か"すべてのファイル"しか選ぶことができません。 ファイルの種類でcsvファイルを選択できるようにしたいのですが、どこで変更するのでしょうか?

専門家に質問してみよう