Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 强制浏览器在默认查看器中打开文件_Php_Javascript_Browser_Webserver - Fatal编程技术网

Php 强制浏览器在默认查看器中打开文件

Php 强制浏览器在默认查看器中打开文件,php,javascript,browser,webserver,Php,Javascript,Browser,Webserver,我有一个小型的内部应用程序,可以从表中提取数据。其中一部分数据是名为image\u location的字段 一个示例值是: \\192.168.13.8\审核过程中\n宾夕法尼亚州4-0925232\Images\DWB_258906000.tif 当用户加载数据输入屏幕时,我希望弹出并显示一个弹出窗口。尝试此操作时: function poponload(){ var url = "\\\\192.168.13.8\\audits in process\\Nat Penn 4 - 09

我有一个小型的内部应用程序,可以从表中提取数据。其中一部分数据是名为
image\u location
的字段

一个示例值是:

\\192.168.13.8\审核过程中\n宾夕法尼亚州4-0925232\Images\DWB_258906000.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);
}
我得到这个窗口:

当我手动转到浏览器中的位置时,它会提示我打开或保存:

我的问题-

  • 我是否能够强制浏览器在其本机程序中显示文件
  • 我是否必须设置包含所有文件的“源”服务器来处理此问题

  • 谢谢。

    除非我错过了什么,否则在不提示用户的情况下打开一个单独的程序将是一个巨大的、collosal的和[适合这里的任何其他同义词]安全漏洞。
    简而言之,没有。

    在我看来,您正在调用的URL试图在192.168.13.9中找到它。您可能应该更改
    url
    变量,使其以
    http://
    开头,以强制浏览器识别为外部。这将迫使浏览器像平常一样处理图像。不幸的是,我不认为任何浏览器会在浏览器中呈现.tif图像,并且您不能强制浏览器从网页内部执行超出自身范围的操作。

    我不确定这是否是您想要的,但是

    如果您试图显示的“弹出窗口”是您在手动输入url时显示的浏览器保存/打开弹出窗口,则您要做的是将文件发送到浏览器,并将http头“Content type”设置为“application/octet stream”

    或者,您可以直接将用户浏览器指向远程文件,但服务器必须配置为将内容类型头设置为八位字节流。这将确保显示弹出窗口,而不是浏览器执行某些其他操作,如显示图像或打开外部程序


    顺便说一句,通过查看地址栏,很容易看出为什么您会出现404 not found错误。

    查看屏幕截图中的URL<代码>192.168.13.9/\\192.168.13.8。我真的怀疑这是你想要的,因此你的
    404

    如果您加入协议(例如http:),它可能会自行解决,但这实际上是由于URI的格式与Windows计算机上的路径不同;您可能需要(注意斜线的方向)

    http:
    是“方案”,读取协议
    /
    表示URI的下一部分是“权限”,读域
    192.168.13.8
    是一个IP地址,即“授权机构”
    /
    表示URI的下一个组件路径的开始

    如果您想了解更多有关URI语法的信息,请参阅(第3节将非常有趣)

    至于让浏览器显示它,如果浏览器不知道如何以本机方式渲染它,则需要在客户端机器上为该浏览器获取第三方插件,或者以浏览器可以处理的其他格式显示它

    如果浏览器本身不知道如何处理它,它将用打开/保存对话框提示用户,正如您在手动输入URL时看到的那样

    header('Content-type: application/octet-stream');
    echo $file;
    exit;
    
    "http://192.168.13.8/audits in process/Nat Penn 4 - 0925232/Images/DWB_2589060000.tif"