我有一个href链接,点击后应该打开一个位于该位置的Excel文件。它在Chrome和IE9中完美运行,但从昨天开始它就停止了工作,但没有任何改变。
代码如下所示:
<?php
$file_name="MyFile.xlsx";
$folder_name="CurrentFolder" . "/";
$file_path='D:/AllFiles/';
$link1=$file_path. $folder_name. $file_name;
?>
<a href="<?php echo $link1 ?>" target=_blank>
<div style="height:100%;width:100%">
<?php echo "$link1"; ?>
</div>
</a>
编辑:
这是一些httpd.conf文件:
<Directory "c:/wamp/www/">
Require local
</Directory>
<Directory "c:/wamp/www/site1/">
Require all granted
</Directory>
Alias "/ssfiles" "D:/AllFiles/CurrentFolder"
<Directory "D:/AllFiles/CurrentFolder">
Require all granted
</Directory>
答案 0 :(得分:0)
由于D:/AllFiles/CurrentFolder
文件夹位于DocumentRoot文件夹之外,因此不允许Apache访问它。我的意思是,当用户点击你创建的链接时,Apache会看到一个文件夹,它没有被告知是允许访问的,也没有权限访问。
您需要为存储在DocumentRoot外部的文件夹创建别名,以便Apache知道它可以访问它们,以及它们被称为什么(别名)以及谁可以请求数据。
Alias "/ssfiles" "D:/AllFiles/CurrentFolder"
<Directory "D:/AllFiles/CurrentFolder">
Require all granted
</Directory>
然后更改代码以使用您创建的别名,然后从domain.tld/ssfiles/anyfilename.ext
请求apache看到的任何内容它将尝试从D:/AllFiles/CurrentFolder
服务器
<?php
$spreadsheet_alias = 'ssfiles/';
$file_name = 'MyFile.xlsx';
$link1= $spreadsheet_alias. $file_name;
?>
<a href="<?php echo $link1 ?>" target=_blank>
<div style="height:100%;width:100%">
<?php echo "$link1"; ?>
</div>
</a>
PS:这可能是因为我们修复了this previous question
中的内容