首页 > 解决方案 > PHP | 下载 PDF 文件,适用于 Chrome,但不适用于 Safari

问题描述

大家好,我有一个小问题,我不明白解决方案,我有一个专门供用户使用的区域,他可以在其中下载他的 PDF 文件,一切都在 Chrome 上完美运行,但在 Safari 上却不行,我输入了代码:

文件pdf.php:

<?php
while($row_rit_acc = mysqli_fetch_assoc($r_rit_acconto_dfpagate)){ ?>
<?php
$icona_donwload = "<i class='fas fa-file-download'></i>";
$doc = $row_rit_acc['cont_id'];
<td><?php echo "<a href='downloads_doc_contabilita.php?ritacc_df=".$doc."'>".'Download '.$icona_donwload."</a>"; ?></td>
<?php } ?>

下载_doc_contabilita.php:

<?php
ob_start();
session_start();
include 'connection/cnt.php';



if (isset($_GET['ritacc_df'])) {
    $id = $_GET['ritacc_df'];

    // fetch file to download from database

    $sql = "SELECT * FROM bigo_contabilita WHERE cont_id =$id";
    $result = mysqli_query($connessione, $sql);

    $file = mysqli_fetch_assoc($result);
    $filepath = 'uploads/' . $file['cont_richiesta_rit'];

    if (file_exists($filepath)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . basename($filepath));
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize('uploads/' . $file['cont_richiesta_rit']));
        readfile('uploads/' . $file['cont_richiesta_rit']);


        exit;
    }

}

它可以依赖什么?

标签: php

解决方案


根据this answer删除必须解决您的问题Content-Lengthheader


推荐阅读