2013-02-06 36 views
3

我将PDF文档存储在服务器的共享文件夹中,我需要通过文件浏览从Web应用程序访问它们。我知道存储在那里的文件的名称。所以我的链接就像(文件:\\ server \ folder \ abc.pdf)。使用php访问来自不同域的文件

我的php应用程序在xampp上运行的Web服务器上。但共享文件夹位于不同的域中。 (不在Web服务器文件夹 - 普通文件夹中)。当我尝试访问文件时,它显示“找不到文件:\\ server \ folder \ abc.pdf。确保路径或Internet地址是正确的”。

<a href="file:\\server\folder\abc.pdf" >Load File</a> 

<?php 
echo $dir = '\\\\server\\folder\\'; 

$dh = opendir($dir); 

while (($file = readdir($dh)) !== false) { 
echo "<a href=".$dir.$file.">".$file."<br></a>"; 
} 

closedir($dh); 

?> 

当我它提示该文件夹的用户名和密码,因为它是在不同域的地址栏上键入“\\服务器\文件夹”(我现在的域名已经被验证在我的符号) 。当我为该文件夹提供Windows身份验证时,我的Web应用程序URL将正常工作并成功打开文件。

我想在不提示目录安全用户名和密码的情况下完成此任务。我的Web应用程序将被许多用户使用,因此网络驱动器的本地映射也不可行。

任何人都可以帮助我吗?

+0

试图更改共享文件夹的公共(无需任何身份验证),然后再试一次,也都大幅削减应该被转义像(\\\\服务器\\ \\文件夹) – 2013-02-06 07:36:53

+0

感谢阿卡姆了迅速的反应,但是,由于安全目的,我无法将文件夹公开。 – Guns

+1

检查此[链接](http://stackoverflow.com/questions/1444976/accessing-a-windows-share-using-php) – 2013-02-06 07:49:41

回答

1

得到的答案

我们可以映射网络驱动器到服务器并保存其在“映射网络驱动器”向导提示输入用户名和密码,然后就可以正常使用映射的网络向导。

下面是为我工作的代码。

$dir = "A:/folder/"; 
$dh = opendir($dir); 
while (($file = readdir($dh)) !== false) 
{ 
echo 'The file is : ' . $file . "\n"; 
} 
closedir($dh); 
+0

什么是一种很好的方法来绕过安全!您似乎忘记了哪些身份验证部件属于php/web-server以及属于哪个用户。请告知自己您的问题和解决方案对安全性的影响 – Oerd