簡體   English   中英

從網頁(UNC 路徑)在應用程序中打開本地 PDF

[英]Open Local PDF in Application from Webpage (UNC path)

我有一個網頁,可以創建指向本地服務器上的 Excel 和 PDF 文件的鏈接。 我成功打開 Excel 文件,但不能打開 PDF。 請考慮以下代碼:

$fileLink = sefs1/Standards/Cable Trays.pdf
$fileName = Cable Trays

} else if($fileType == "pdf") {
    echo "<td><a href='file://".$fileLink."'>".$fileName."</a></td>";
}

如何在用戶的默認 PDF 應用程序中打開 PDF?

編輯:請參閱下面代碼的擴展:

// Print table
while($queryTableInfo->fetch()){
    $fileType = pathinfo($fileLink, PATHINFO_EXTENSION);
    echo "<tr>";
        // Format the link depending on file type
        if(!empty($fileLink)) {
            if($fileType == "xls" || $fileType == "xlsx" || $fileType == "xlsm") {
                echo "<td><a href='ms-excel:ofe|u|file:///".$fileLink."'>".$standardNum."</a></td>";
 //STACK OVERFLOW ISSUE BEGIN
            } else if($fileType == "pdf") {
                echo "<td><a href='".$fileLink."'>".$standardNum."</a></td>";
 //STACK OVERFLOW ISSUE END
            } else {
                echo "<td>".$standardNum."</td>";
            }
        } else {
            echo "<td>".$standardNum."</td>";
        }
        $filename = 'filename.html';

        //Additional Information
        echo "<td>".$description."</td>";
        echo "<td>".$revNum."</td>";
        echo "<td>".$issueDate."</td>";
    echo "</tr>";
}

$queryTableInfo->close();

href 中的 file:// 和 file:/// 對我不起作用

Excel 鏈接有效。 PDF 鏈接沒有。 我還想在用戶的默認 PDF 應用程序而不是 Web 瀏覽器中打開它。 希望這更清楚

UNC 鏈接到 PDF 的正確 href 結構被發現是:

echo "<td><a href='file://///".$fileLink."'>".$standardNum."</a></td>"

那是 file: 帶有五 (5) 個斜杠。 這解決了 Internet Explorer 和 Edge 的問題。 但是,對於 Chrome,您必須讓用戶在他們的機器上安裝此插件或類似插件:

https://chrome.google.com/webstore/detail/enable-local-file-links/nikfmfgobenbhmocjaaboihbeocackld?hl=en

在 Firefox 上,我發現沒有有效的解決方案可以通過“一步安裝”進行部署而不犧牲網站的設計。 就我而言,這是一個內部網,因此我對用戶機器有一些控制權,並且可以要求 IT 在他們的下一個新機器的操作系統映像上將此插件烘焙到 Chrome 中。

對於現有的機器,Chrome 插件安裝被證明足夠簡單,任何經驗的用戶都可以遵循。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM