- ベストアンサー
クライアント側のファイル存在チェック方法とexcel実行方法
- クライアント側でのファイル存在チェック方法を教えてください。存在しない場合にはサーバーからexcelファイルをダウンロードし、存在する場合には何もしないようにしたいです。
- また、クライアント側でexcelファイルを実行する方法も教えてください。
- fopen()を使用してファイル存在チェックを行いましたが、サーバー側の存在チェックになってしまい、クライアント側をチェックできませんでした。アドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
fopenなどのPHPコードはサーバ上で実行されるため、 クライアントに該当ファイルが存在するかどうかはPHP単独ではできません。 よって、一度ブラウザにファイルチェックをするコード(VBScript等)を埋め込んだHTML(例:check.html)を読み込ませ、ブラウザ側でファイルチェックした結果を、サーバに送信(submit)してから、 サーバ上のPHP(例:download.php)でファイルをダウンロードするかしないか判断するようにしたらどうですか? ☆check.htmlのファイルチェック部分サンプル(あくまで最低限のサンプルのため、もっとよい方法があるはずです。ヒントになればと思い添付しました) <script Language="VBScript" > <!-- function checkFile() Dim fs, f, s Set fs = CreateObject("Scripting.FileSystemObject") On Error Resume Next Set f = fs.GetFile("C:/a.xls") if Err.Number = 53 then MsgBox "file not found" else MsgBox "file found" end if End function --> </script> 上記のMsgBoxの所をファイルの有無をサーバに送る手順に変更すればよいと思います。 もちろんActiveXは有効にしなければなりません。
その他の回答 (1)
ファイルチェック部分をjavascriptに変更してみてはいかがでしょうか? function ShowFileInfo(){ var fs, f, s; fs = new ActiveXObject("Scripting.FileSystemObject"); if( fs.FileExists("C:/a.txt")){ alert( "file found"); }else{ alert( "file not found"); } }
お礼
ありがとうございました。
補足
marimari01様、再度のご教授ありがとうございました。 サンプルのjavascriptを実行した結果、VBScriptと同様の結果でした。 *Windows mobile(v5.0)の機種はWILLCOM(wzero3)で、IE,OPERAの両方で実行してもだめでした。 *しかし、私にとってはmarimari01様からご教授頂いた内容は非常に有益で他のケースで活用できそうです。 *どうもお手数お掛けしました。 これからもよろしくお願いいたします。
補足
marimari01様、早々のご教授ありがとうございました。 ご教授頂いたコードを実行したところ、ファイルの存在チェックができました。ありがとうございました。 申し遅れましたが、最終的な操作は「windows mobile(v5.0)」での実行をしたいのですが、このOSでは「VBScript」は動かないようです。 折角のありがたい情報でしたが、またお手上げ状態になってしまいました。・・・個別に手動でexcelを操作して貰うしかなさそうです。 お手隙の時で結構ですので、何かいい方法があったら教えて下さい。