Доступ к файлам из разных доменов с помощью php

У меня есть PDF-документы, хранящиеся в общей папке на сервере, где мне нужно получить к ним доступ из веб-приложения через просмотр файлов. Я знаю имена хранящихся там файлов. Итак, моя ссылка будет выглядеть так (файл:\\сервер\папка\abc.pdf).

Мое приложение php находится на веб-сервере, работающем на xampp. Но общая папка находится в другом домене. (Не в папке веб-сервера - Обычная папка с файлами). Когда я пытаюсь получить доступ к файлу, появляется сообщение "Не удается найти файл:\\сервер\папка\abc.pdf. Убедитесь, что указан правильный путь или интернет-адрес".

<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 для этой папки, мой URL-адрес веб-приложения будет работать и успешно откроет файл.

Я хочу выполнить эту задачу, не запрашивая имя пользователя и пароль безопасности каталога. Мое веб-приложение будет использоваться многими пользователями, поэтому локальное сопоставление сетевого диска также будет невозможно.

Может ли кто-нибудь помочь мне в этом, пожалуйста?


person Guns    schedule 06.02.2013    source источник
comment
попробуйте изменить эту общую папку на общедоступную (без какой-либо аутентификации) и повторите попытку, также все косые черты должны быть экранированы, например (\\\\server\\folder\)   -  person    schedule 06.02.2013
comment
Спасибо Akam за быстрый ответ, однако из соображений безопасности я не смог бы сделать папку общедоступной.   -  person Guns    schedule 06.02.2013
comment
проверьте также эту ссылку   -  person    schedule 06.02.2013


Ответы (1)


Получил ответ

Мы можем подключить сетевой диск к серверу и сохранить имя пользователя и пароль, которые запрашиваются в мастере «подключения сетевого диска», а затем можем использовать мастер подключенной сети в обычном режиме.

Ниже приведен код, который работал у меня.

$dir = "A:/folder/";
$dh = opendir($dir);
while (($file = readdir($dh)) !== false)
{
 echo 'The file is : ' . $file . "\n";
}
closedir($dh);
person Guns    schedule 06.02.2013
comment
Какой отличный способ обойти защиту! Вы, кажется, не обращаете внимания на то, какие части аутентификации принадлежат php/веб-серверу, а какие принадлежат пользователю. Информируйте себя о последствиях вашего вопроса и решения для безопасности. - person Oerd; 06.02.2013