0

テーブルからデータを取得する小さな内部アプリがあります。そのデータの 1 つが と呼ばれるフィールドimage_locationです。

値の例は次のとおりです。

\\192.168.13.8\audits in process\Nat Penn 4 - 0925232\Images\DWB_2589060000.tif

ユーザーがデータ入力画面をロードすると、ポップアップが表示されます。これを試すとき:

function poponload(){
    var url = "\\\\192.168.13.8\\audits in process\\Nat Penn 4 - 0925232\\Images\\DWB_2589060000.tif";

    testwindow = window.open(url, "mywindow", "location=1,status=1,scrollbars=1,width=900,height=900");
    testwindow.moveTo(0, 0);
}

このウィンドウが表示されます: ここに画像の説明を入力

ブラウザーで手動でその場所に移動すると、開くか保存するように求められますここに画像の説明を入力

私の質問 -

  1. ブラウザのネイティブ プログラムでファイルを表示するように強制することはできますか?
  2. これを処理するには、すべてのファイルを格納する「ソース」サーバーをセットアップする必要がありますか?

ありがとう。

4

4 に答える 4

1

スクリーンショットでその URL を見てください。192.168.13.9/\\192.168.13.8. それがあなたが望んでいたものであり、したがってあなたの404.

などのプロトコルを入力すると、自動的に解決される可能性がありますhttp:が、これは実際には、URI がWindowsマシンのパスとは異なる形式になっているためです。おそらく必要です(スラッシュの方向に注意してください)

"http://192.168.13.8/audits in process/Nat Penn 4 - 0925232/Images/DWB_2589060000.tif"

http:読み取りプロトコル
//は、URI の次の部分が「機関」であることを意味します。読み取りドメイン
192.168.13.8は IP アドレスです。「権限」
/は、URI の次のコンポーネントであるパスの開始を意味します。

URI 構文について詳しく知りたい場合は、公式の RFC3986を参照してください(セクション 3 が興味深いでしょう)。

ブラウザに表示させることに関しては、ブラウザがそれをネイティブにレンダリングする方法を知らない場合、クライアントのマシンでそのブラウザ用のサードパーティのプラグインを取得するか、ブラウザが他の形式で表示する必要があります。扱うことができます。

ブラウザー自体がそれを処理する方法を認識していない場合、手動で URL を入力したときに見たように、開く/保存するダイアログが表示されます。

于 2013-05-30T00:17:30.077 に答える
0

あなたが呼び出している URL は、192.168.13.9 内でそれを見つけようとしているように見えます。ブラウザに外部として認識させるには、おそらくurl変数を で始まるように変更する必要があります。http://これにより、ブラウザは通常どおりに画像を処理するようになります。残念ながら、ブラウザー内で .tif 画像をレンダリングするブラウザーはないと思います。また、Web ページ内からブラウザーの外部で何かを実行するようブラウザーに強制することはできません。

于 2013-05-30T00:03:19.637 に答える
0

私が何かを見逃していない限り、最初にユーザーにプロンプ​​トを表示せずに別のプログラムを開くことができるということは、巨大で巨大な [ここで他の同義語に適合する] セキュリティ ホールです。要するに、No.

于 2013-05-30T00:01:56.303 に答える
0

これがあなたの望むものかどうかは正確にはわかりませんが...

表示しようとしている「ポップアップ」がブラウザの保存/開くポップアップである場合、URLを手動で入力するとポップアップが表示され、httpヘッダー「Content-type」を設定してファイルをブラウザに送信します「アプリケーション/オクテット ストリーム」。

header('Content-type: application/octet-stream');
echo $file;
exit;

別の方法として、ユーザーのブラウザをリモート ファイルに誘導することもできますが、その場合、サーバーは content-type ヘッダーを octet-stream に設定するように構成する必要があります。これにより、ブラウザーが画像の表示や外部プログラムを開くなどの他のアクションを実行するのではなく、ポップアップが表示されるようになります。

ところで、404 not found エラーが発生した理由は、アドレス バーを見れば簡単にわかります。

于 2013-05-30T00:17:23.970 に答える