繁体   English   中英

防止PDF自动下载

[英]Prevent PDF from automatically downloading

我正在为物业出租代理(房地产)构建一个WordPress网站,该网站链接到他们的物业管理系统(LetMC)。

例如,LetMC通过URL提供PDF属性手册(忽略手册内容,尚待设计):

https://home.letmc.com/property.brochure?propertybrochure={060a-549c-6de2-8fcf}&Bucket=CubaLive_priestley

我建立了一个不错的系统,可以通过AJAX使用灯箱显示物业照片,小册子和位置,因此我不想自动下载PDF。 当前,我将PDF保存到临时文件夹,并直接从站点Web服务器打开它,但理想情况下,我想避免保存PDF。

这可能吗??

目前的进展:

/**
 * Lightbox Brochure
 *
 * Return property brochure to be viewed in a lightbox
 */
public static function lightbox_brochure() {
    $letmc_brochure_url = $_REQUEST['dataurl'];

    if ( isset( $letmc_brochure_url ) ) {

        $filename = generateRandomString() . '.pdf';
        $upload_dir = wp_upload_dir();

        if ( wp_mkdir_p($upload_dir['basedir']) ) {
            $file = $upload_dir['basedir'] . '/letmc_uploads/temp/' . $filename;
        }

        /**
         * Store in the temp filesystem
         */
        $ch = curl_init($letmc_brochure_url);
        $fp = fopen($file, 'wb');
        curl_setopt($ch, CURLOPT_FILE, $fp);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $Result = curl_exec($ch);
        curl_close($ch);
        fclose($fp);

        $output = '';
        $output .= '<div class="lightbox"><iframe src="' . $upload_dir['baseurl'] . '/letmc_uploads/temp/' . $filename . '" width="97%" height="550"></iframe><button title="Close (Esc)" type="button" class="controls mod-close mfp-close"><i class="icon icon-close"></i></button></div>';

        echo $output;

    } else {
        echo '<p>Sorry, no brochure available.</p>';
    }

    die();
}

您无需保存文件即可稍后显示。 您可以直接访问PDF文件,并将其直接吐到iframe中,如下所示:

创建文件getpdf.php

$url = urldecode($_GET['url']);
$pdf_data = file_get_contents($url);
header('Content-type: application/pdf');
echo $pdf_data;

像这样修改代码(将其放在$output = '';下方):

$letmc_brochure_url = urlencode($letmc_brochure_url);

$output .= '<div class="lightbox"><iframe src="getpdf.php?url=' . $letmc_brochure_url . '" width="97%" height="550"></iframe><button title="Close (Esc)" type="button" class="controls mod-close mfp-close"><i class="icon icon-close"></i></button></div>';

唯一的缺点是每次请求文件时,服务器都需要再次下载该文件(没有缓存),这可能会对服务器资源造成压力。

Google的Google文档有一个漂亮的iframe嵌入工具,可让您在线嵌入和查看文档(包括pdf)!

查看下面的代码。 您只需要提供文档的URL。

<iframe id="app-iframe" class="iframe-doc" src="http://docs.google.com/viewer?url=http://www.giancarlocolfer.com/wp-content/uploads/2015/04/pdf-sample.pdf&amp;embedded=true" height="600" width="680" title="PDF Sample" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>

您可以在我专业的Web开发和设计博客上观看此PDF和在线文档在线阅读器 iframe嵌入工具的实时演示/示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM