電子書籍の厳選無料作品が豊富!

PHPでのcsv出力について、教えてください。
csvファイルをあるフォルダに保存させたい(例えばZ:\csvoutput等)の
ですが、どのように作ればよいのか分からず、ちょっと困っています。
ネットなどで出ている一般の(?)やり方だと、csv保存時に別画面
(ポップアップ)が出てきて、「開く」「保存」「キャンセル」のボタンが表示され、
保存時に自分でフォルダを指定して保存しますが、これを随時固定の場所に
保存させたいのです。csvのファイル名は固定で決まっています。
ちなみに、該当となる保存先フォルダは必ず存在するという前提で良い事になっています。
緊急の依頼で、ちょっと急いでいます。

下手な文章でごめんなさい。。
宜しくお願い致します。

A 回答 (5件)

こんにちは。



一般的な方法というかブラウザの仕様というかそんな感じです。
要するに確認も無しに保存させる行為は出来ません。

リンクやボタンをクリックしていきなり指定された場所にファイルをダウンロードされたら怖くありませんか?
(c:\window\system32\に何かdllとかexeが入ったり等)

実現させるとしたらIEのみになってしまうかもしれませんがActiveX等を利用して作るしかないと思います。
(クライアントにインストールされるのでインストールさえ許可しなければ問題が起きない)
    • good
    • 0
この回答へのお礼

早速の回答、ありがとうございます。

ユーザーからは、確認画面は表示させても良いといわれています。
ただ、その際に保存場所の初期表示を常に一定の場所にしたい
そうです。
通常だと直前に保存処理を行った場所が初期表示されてしまいますが、
それをやめたいとの事でした。
言葉足らずですみません。。

宜しくお願い致します。

お礼日時:2010/02/12 12:10

ちょっと思いなおしたこと・・・



ftpで処理する。
たいていのftpクライアントはファイルの保存位置は任意に
指定ができます。
    • good
    • 0

ユーザー側にXAMPPとかAIRとか入れても良いのであれば、可能なんじゃないかな~とは思いますが、ユーザー側にそれは要求できないっ

て事なんですよね?
    • good
    • 0
この回答へのお礼

ありがとうございます。

ユーザー側に入れて良いかは交渉次第なんですが…。
難しいかもしれません。

お礼日時:2010/02/12 15:09

他の方も答えているように、ブラウザのセキュリティ的な問題がありますから、


PHP側からの処理では、フォルダ固定で強制的に保存させるというのは不可能です。

ですが、「特定の顧客向け」で「利用者は独自アプリケーションをインストールする」といった運用ができるのなら、下記の手段で固定フォルダへの保存は実現できると思います。

・「引数で指定されたファイルを、拡張子をcsvに変えて、固定フォルダに移動する」という処理を行うアプリケーションを作成する。

・利用者のPCに上述のアプリケーションをインストールする。また、csvではない特殊な拡張子(例えば、*.xxx)に、上述のアプリケーションを関連づける

・PHP側では、出力ファイル名の拡張子を、csvではなく、上述で関連づけた拡張子(*.xxx)にする

・利用者側では、PHPが出したファイルのリンククリック時に、「保存」ではなく「開く」を選ぶ

以上で、利用者のPCでは、「開く」の操作によって、独自アプリケーションが立ち上がるため、特定のフォルダへの移動がなされます。
    • good
    • 0
この回答へのお礼

利用者(ユーザー側)に独自アプリのインストールが可能かどうかが
交渉しないといけないのですが…。

でも、参考になりそうです。
ありがとうございます。

お礼日時:2010/02/12 15:23

セキュリティの問題なのでサーバー側でどうにかなる問題ではありません。



セキュリティの甘いブラウザを自作するのが一番早いと思います。

この回答への補足

ありがとうございます。
難しいですか。。。

一応、ユーザーからは確認画面は表示されても良いとは言われています。
ただ、その際の保存場所のデフォルトを毎回同じ場所にしたいそうです。
(現状だと直前に保存した場所がデフォルト表示される)
言葉足らずですみません。。

宜しくお願い致します。

補足日時:2010/02/12 12:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!