ダウンロードしたファイルをWindowsアプリケーションに読み込む方法

ダウンロードしたファイルを、特定のアプリケーションで読み込みたい場合は、ファイル名の拡張子によって、ファイルをアプリケーションに関連付ける。


対処方法

あらかじめ、ローカルなWindow上でファイルをアプリケーションに関連付ける方法は後述の「設定方法」の通り。

そのような設定をしていない場合には、下記のように、その場で対処することが可能である。
  1. 「このファイルを開けません」と表示されたエラーダイアログがポップアップしたときに、[一覧からプログラムを選択する]にチェックして、[OK]を押す。
  2. ファイルを開くプログラムの選択]ダイアログで、対応するプログラムを選択して、[この種類のファイルを開くときは、選択したプログラムをいつも使う]にチェックを入れ、[OK]をクリック。


設定方法

ローカルなWindows上で、以下の処理を行う。
  1. 関連づけを変更する拡張子を持つファイルを右クリックし、[プログラムから開く]→[プログラムの選択]を選ぶ。
  2. [ファイルを開くプログラムの選択]ダイアログから対象のアプリケーションを選択するか、もしくは、[参照]をクリックしてアプリケーションを選択する。
  3. [この種類のファイルを開くときは、選択したプログラムをいつも使う]にチェックを入れ、[OK]をクリック。


設定の確認/解除

  1. 任意のフォルダを開き、メニューから[ツール]→[フォルダオプション]を選択する。
  2. [フォルダオプション]ダイアログから[ファイルの種類]タブをクリックし、対象の拡張子を探して選択する。
  3. 設定を解除したい場合は、[拡張子詳細]の[元に戻す]をクリックし、[OK]を押す。


実装方法

実装例として、サーバーディレクトリ上の*.msv, *.pdbファイルを選択してダウンロード([保存])、または「ViewerLite」を起動する([開く])機能を持つ、アプリケーションを作成してみた(サーブレットの詳細は略。というか、無くした…)。
以下の2つの実装方法がある。
  1. <a href="">を使用してGETメソッドでファイルパスとファイル名を取得する方法


  2. ソースの場所



    jspの設定例

    <%
        String filePath = (String)session.getAttribute("filePath");
        for (int i=0; i < fileList.size(); i++) {
            String fileName = (String)fileList.get(i);
    %>
    <a href="[URL]:[ポート番号]/start_viewerLite/servlet/StartViewerLite?target=<%= filePath %>&name=<%= fileName %>"><%= fileName %></a>
    <%
        }
    %>

    表示/動作

    • http://[URL]:[ポート番号]/start_viewerLite/index.html
    • ファイルにはそれぞれリンクが張られているので、リンクをクリックする。
    • [ファイルのダウンロード]のダイアログは、1回しか表示されない。



  3. <form action="">を使用してPOST(またはGET)メソッドでファイル名を取得する方法




  4. ソースの場所



    jspの設定例

    <form action="StartViewerLiteForm" method="post">
    <%
        for (int i=0; i < fileList.size(); i++) {
            String fileName = (String)fileList.get(i);
    %>
    <input type="radio" name="fileName" value="<%= fileName %>"><%= fileName %><br>
    <%
        }
    %>
    <input type="submit" value="Download">

    表示/動作

    • http://[URL]:[ポート番号]/start_viewerLite_form/index.html
    • ラジオボタンでファイルを選択し、[submit]のボタンを押す。
    • [ファイルのダウンロード]のダイアログが、2回表示される。