2009-08-16 3 views
2

Как я могу перечислить содержимое общего доступа к Windows с помощью PHP?Как пройти каталог через локальную сеть с помощью PHP?

$SearchFolder = "\\\\192.168.1.100\\pdfoutput\\"; 

if (is_dir($SearchFolder)) 
{ 
    if ($Directory = opendir($SearchFolder)) 
    { 
     while (($File = readdir($Directory)) !== false) 
     { 
      if(filetype($SearchFolder.$File) == "file") 
      { 
       $this->Attachments[] = new Attachment($SearchFolder.$File); 
      } 
     } 
     closedir($Directory); 
    } 
} 

Распечатать (opendir ($ SearchFolder)); дает эту ошибку:

Warning: opendir(\192.168.1.100\pdfoutput) [function.opendir]: failed to open dir: No error in C:\Users\gary\Webserver\QuickMail\maildetails.php on line 227

Это не работает должным образом. Есть предположения?

+1

Не могли бы вы устранить проблему путем сопоставления ее с дисководом? – Greg

+0

Также вы используете PHP или Apache? Если вы google «php unc path», вы получаете некоторые результаты о разрешениях, которые могут вам помочь, но они различаются между веб-серверами. – Greg

+0

@Greg: они оба, конечно? Он использует язык PHP на сервере Apache в Windows (предположим). По крайней мере, эти два не являются взаимоисключающими. – DisgruntledGoat

ответ

1

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

$SearchFolder = "ftp://192.168.0.104/PDFOutput/"; 

if (is_dir($SearchFolder)) 
{ 
    if ($Directory = opendir($SearchFolder)) 
    { 
     while (($File = readdir($Directory)) !== false) 
     { 
       if(filetype($SearchFolder.$File) == "file") 
       { 
         $this->Attachments[] = new Attachment($SearchFolder.$File); 
       } 
     } 
     closedir($Directory); 
    } 
} 
3

Взгляните на комментарии пользователей к функции opendir по адресу http://uk3.php.net/function.opendir. Похоже, может быть какая-то информация, которая поможет вам. В частности, этот бит кода, DaveRandom может решить вашу проблему:

<?php 
// Define the parameters for the shell command 
$location = "\\servername\sharename"; 
$user = "USERNAME"; 
$pass = "PASSWORD"; 
$letter = "Z"; 

// Map the drive 
system("net use ".$letter.": \"".$location."\" ".$pass." /user:".$user." /persistent:no>nul 2>&1"); 

// Open the directory 
$dir = opendir($letter.":/an/example/path") 
?> 
Смежные вопросы