gpt4 book ai didi

php - pdf 文件下载代码不适用于 SSL/HTTPS?

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:13 26 4
gpt4 key购买 nike

场景:我有一个下载 pdf 文件的链接。单击它后,ajax 调用将运行并返回要下载的文件。 (出于安全原因,Ajax 实现隐藏文件路径)

问题: 代码在 http/非 ssl 路径下运行完美。但是当站点移动到 https 时,相同的代码不起作用。

问题:代码中是否遗漏了 SSL/HTTPS 的任何内容?这段代码写到wordpress中

 <a  class="red contract-btn" id="contract_link" data-contract="<?php echo base64_encode($cont_file); ?>" href="" >View Contract</a>

<script>
jQuery("#contract_link").on('click',function(e){

e.preventDefault();
var $this=jQuery(this).data('contract');
var ajaxData = {
'action': 'contract_file_download',
'cont_file':$this
}

jQuery.ajax({

type: "POST",
url: "<?php echo admin_url('admin-ajax.php'); ?>",
data: ajaxData,
success: function( response ) { },
error: function() {
alert("Error!");
}

});
});

</script>

PHP:

add_action("wp_ajax_contract_file_download", "contract_file_download");
add_action("wp_ajax_nopriv_contract_file_download", "contract_file_download");
function contract_file_download(){
$File_path=base64_decode($_POST['cont_file']);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($File_path) . '"');
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($File_path));

ob_end_flush();

set_time_limit(0);

readfile($File_path);


}

最佳答案

我相信……我也许错了……您可能没有正确更改 WordPress 中的所有网址。

如果你这样做了,根据 https://codex.wordpress.org/Function_Reference/admin_url

admin_url('admin-ajax.php','https');

使用第二个参数强制https

关于php - pdf 文件下载代码不适用于 SSL/HTTPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45569738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com