WP_重定向至文件://位置导致空白页面/无法显示页面

时间:2011-11-15 作者:Scott

我有一个CPT,用于链接本地驱动器上的资源。

我在单个资源中有此代码。php:

<?php
global $post;
the_post();
$location = get_post_meta($post->ID, \'sc_stace_resource_location\', true);
$count = (int) get_post_meta($post->ID, \'sc_stace_view_count\', true);
$count++;
update_post_meta($post->ID, \'sc_stace_view_count\', $count);
wp_redirect($location);
die();
?>
基本上,用户单击资源,资源计数器递增,然后用户应该被带到文件位置。文件位置示例如下:

file://S:/_%20Transfer/Scott/wfw_christmas_041111.pdf
现在,如果我把它放在任何浏览器的地址栏中,文件都可以很好地加载。但是当我使用上面的代码导航时,我在webkit浏览器上得到一个空白页面,而在IE浏览器中无法显示一个页面。

不确定这是PHP问题还是WordPress问题。

有人知道为什么这样不行吗?

更新

这似乎不起作用的原因是因为浏览器的安全性。我能想到的唯一解决方案是直接链接到该文件,但如果这样做,我将失去跟踪下载数量的能力。有什么解决方案吗?

1 个回复
最合适的回答,由SO网友:Scott 整理而成

由于浏览器的安全性,上述代码无法工作。

我决定使用以下代码:

<?php
global $post;
the_post();
$location = get_post_meta($post->ID, \'sc_stace_resource_location\', true);
$count = (int) get_post_meta($post->ID, \'sc_stace_view_count\', true);
$count++;
update_post_meta($post->ID, \'sc_stace_view_count\', $count);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title><?php the_title(); ?></title>
<meta http-equiv="REFRESH" content="1;url=<?php echo $location; ?>">
</HEAD>
<BODY>
Redirecting to selected file. If nothing happens <a href="<?php echo $location; ?>">click here</a>
</BODY>
</HTML>
我正在开发的网站是为公司内部网开发的,在他们的网络上,他们必须使用IE。由于该网站是内部网网站,因此该网站在IE中被视为受信任的,因此文件链接工作正常。

结束

相关推荐

$wp_FILESYSTEM返回空。依赖关系是什么?

我需要获取对$wp\\u filesystem对象的引用。在下面的测试中,var\\u dump($wp\\u filesystem)返回NULL。要正确设置$wp\\U文件系统,还需要哪些其他文件?我一直在期待,因为它在文件中调用。php,加载该文件就足以加载该对象。<?php require(\'../../../wp-blog-header.php\'); require(\'../../../wp-admin/includes/file.php\'); $m