PHPについて質問です。


インターネットに接続しない状況で、ハイパーリンク見たいなものをクリックするとフォルダを開けるようにしたいと考えています。

例)エクセルファイル ←ハイパーリンク見たいな設定がされていて、クリックすると

C:\Users\username\Desktop\excel_file

のフォルダを開くようになる。

PHPは関係ないですが、HTMLで

<a href="C:\Users\username\Desktop\excel_file">エクセルファイル</a>

と囲んでみたところ

c というプロトコルはどのプログラムにも関連づけられておらず、Firefox でこのアドレスを開く方法が分かりません。

というエラーが出てきました。

こういった事を克服して、開けることを可能にしたいのですが、実現するのは不可能でしょうか?
最終的には指定したプログラムでファイルを開けるようにまでしたいと考えています。

もしできないとしてこのようなことを可能にできるとしたらどのような方法があるでしょうか?

<文字数の関係上以下質問文はコメントにて・・・>

回答の条件
  • 1人2回まで
  • 登録:2009/10/17 17:39:23
  • 終了:2009/10/18 03:24:51

ベストアンサー

id:makeworld No.1

makeworld回答回数75ベストアンサー獲得回数232009/10/17 17:56:01

ポイント100pt

リンクの先頭に"file:///"を付けて、"\"(バックスラッシュ)を"/"(スラッシュ)に置き換えれば、希望のフォルダを開けると思います。

<a href="file:///C:/Documents and Settings/All Users/デスクトップ/">デスクトップ</a>
id:aiomock

ご回答ありがとうございます。

後、大変お手数をおかけしますが、指定したファイル・プログラムというのは実現不可能でしょうか?

excel.xls ファイルを EXCELで開くことは可能ですか?

2009/10/17 17:58:51

その他の回答(2件)

id:makeworld No.1

makeworld回答回数75ベストアンサー獲得回数232009/10/17 17:56:01ここでベストアンサー

ポイント100pt

リンクの先頭に"file:///"を付けて、"\"(バックスラッシュ)を"/"(スラッシュ)に置き換えれば、希望のフォルダを開けると思います。

<a href="file:///C:/Documents and Settings/All Users/デスクトップ/">デスクトップ</a>
id:aiomock

ご回答ありがとうございます。

後、大変お手数をおかけしますが、指定したファイル・プログラムというのは実現不可能でしょうか?

excel.xls ファイルを EXCELで開くことは可能ですか?

2009/10/17 17:58:51
id:HALSPECIAL No.2

HALSPECIAL回答回数407ベストアンサー獲得回数862009/10/17 21:03:42

ポイント27pt

>最終的には・・・

このような事でしょうか?


JavaScriptで既存のExcelファイルを開く(IE)

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32401&fo...


FireFoxは、こちらのActiveXのプラグインを入れると可能になるようです。

http://plugindoc.mozdev.org/ja-JP/windows-all.html#ActiveX

id:aiomock

ご回答ありがとうございます。

2009/10/18 00:48:25
id:Marine-Blue No.3

Marine-Blue回答回数237ベストアンサー獲得回数122009/10/18 00:11:51

ポイント26pt

強制的にダウンロードダイアログを出して、そこからファイルを開く…っての方法があります。

ひょっとしたらお望みに叶うかもしれないと思案し、リンクを載せておきます。

http://phpspot.org/blog/archives/2008/02/phpdlphp.html


あと、IE6以前の入ったPCならば、IEでフォルダにアクセスしたとき、表示がエクスプローラと同じ状態になります。

(Firefoxでは無理です)


そして、既に指摘されている通り、HTMLをローカルファイル管理のプログラムのように使うのは無理があります。

フリーで便利なファイル管理ソフトを探した方が良い結果をもたらすかもしれません。

id:aiomock

ご回答ありがとうございます。

2009/10/18 00:48:27
  • id:aiomock
    質問続きです。。。


    具体的には、日々の作業のフロー図をhtmlで作成して、日々の作業の確認と作業作業で必要なプログラムとファイルをワンクリックで呼び出して作業をスムーズにできるような形を作りたいと考えています。

    できることなら馴染みのあるPHPで実現したいです。

    お手数をおかけしますが、ご回答をお待ちしております。
  • id:makeworld
    Excelファイルへのリンクも、そのPCにExcelがインストールされていれば開けますよ。
  • id:makeworld
    すみません。質問文を見落としていました。

    > 最終的には指定したプログラムでファイルを開けるようにまでしたいと考えています。

    HTMLからのプログラム実行は、悪用されると危険なので、ある程度制限されています。(PHPからでも、HTMLを出力しているので、同様です)

    IE限定であれば、VBScriptで実現できそうです。

    >|html|
    <html><head>
    <script Language="VBScript">
    Function RunNotepad(FileName)
    Dim WSHShell
    Set WSHShell = CreateObject ("Wscript.Shell")
    WSHShell.Run """C:\Windows\notepad.exe"" """ & FileName & """", 3, True
    End Function

    Function RunWordpad(FileName)
    Dim WSHShell
    Set WSHShell = CreateObject ("Wscript.Shell")
    WSHShell.Run """C:\Program Files\Windows NT\Accessories\wordpad.exe"" """ & FileName & """", 3, True
    End Function

    </script>
    </head>
    <body>
    <form>
    ファイルを開く<br />
    <input type="file" name="FileName" value="ファイルを選択してください。" size="50" /><br />
    <input type="button" onClick="RunNotepad(FileName.value)" name="btnRun" value="メモ帳" />
    <input type="button" onClick="RunWordpad(FileName.value)" name="btnRun" value="ワードパッド" /><br />
    </form>
    </body></html>
    ||<
  • id:makeworld
    XAMPPがインストールされていれば、PHPのpopen()で任意のプログラムを実行できそうです。
    この方法ならFirefoxや他のブラウザでも動作します。

    <?php
    $apppath = 'C:\Program Files\Windows NT\Accessories\wordpad.exe';
    $filepath = 'C:\Documents and Settings\All Users\デスクトップ\test.txt';
    print "<p>({$filepath})を<br/>({$apppath})で開きます。</p>\n";

    $cmd = 'start /B "" "'.$apppath.'" "'.$filepath.'"';
    $fp = popen($cmd, "r");
    pclose($fp);
    ?>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません