Проверка наличия файла

12
_
На сайте с 11.06.2006
Offline
0
1463

Не знаю куда еще обратиться - 3 дня в поисках.

Пишу интерфейс для индексирующего поисковика видео для локалки(простая одноранговая сеть с SMB и FTP-ресурсами). Индекс файлов сделал - осталось сделать проверку их доступности в данный момент. Проверка через file_exists() не работает, как и через fopen(). без подавления ошибок выдает что-то типа:

Warning: fopen() [function.fopen]: remote host file access not supported, file://olga/Video/misery.avi in /usr/local/www/www/moduls/films/one.php on line 23


Warning: fopen(file://olga/Video/misery.avi) [function.fopen]: failed to open stream: no suitable wrapper could be found in /usr/local/www/www/moduls/films/one.php on line 23
The file does not exist
хотя файл точно доступен.

проверку через JS сделал только для смб ресурсов, да и то с множеством выскакивающих предупреждений.

Может у кого-то был опыт по написанию проверки доступности файлов на php или js.

[Удален]
#1

Жертва виндоуз ?

psylosss
На сайте с 23.12.2005
Offline
126
#2

Miha Kuzmin (KMY), не обязательно. Проверка наличия удаленных (remote) файлов не срабатывает.

Топикстартер, пробуйте сокеты (fsockopen)

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
[Удален]
#3

psylosss, url wrapper на юниксе обязан работать. По опредению.

psylosss
На сайте с 23.12.2005
Offline
126
#4

Miha Kuzmin (KMY),

This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Что означает, что file_exists проверяет наличие файла по записям в файловой системе, к которой, естественно, нет доступа при проверке remote файлов. Так что все логично. Проверка-то, как я понял, именно файлов на другом серваке

_
На сайте с 11.06.2006
Offline
0
#5

сервер стоит на FreeBSD6.0 (Apache/2.0.55 (Unix) PHP/5.1.2 ).

до этого стоял PHP4 и file_exists() успешно проверял файлы на SMB, а с ФТП не справлялся. спасибо за быстрый ответ - ща попробую сделать с сокетами=).

[Удален]
#6

psylosss, согласен, не прав.

dkameleon
На сайте с 09.12.2005
Offline
386
#7

Это ответ:

_unit:
no suitable wrapper could be found

Для такого префикса:

_unit:
file://

Видимо таки нет поддержки для такого протокола в установленной ПХП.

Дизайн интерьера (http://balabukha.com/)
_
На сайте с 11.06.2006
Offline
0
#8
dkameleon:
Видимо таки нет поддержки для такого протокола в установленной ПХП.

что я только не пробовал: и ftp:// и smb:// и file:// и просто //hostname/...

не выходит. может при конфигурировании надо указывать чтонить для доступа на удаленные хосты или в php.ini.

вот мои опции:

'./configure' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-mysql=/usr/local/mysql' '--with-mod_charset' '--with-curlwrapper' '--enable-ftp' '--prefix=/usr/local/php' 

а с сокетами что-то очень сложно получается, да и смб-протокола я не знаю...😕

[Удален]
#9

_unit, бабло готовь :)

psylosss
На сайте с 23.12.2005
Offline
126
#10

а сокеты-то почему не помогают? Кусок из мануала:


$fp = fsockopen($path, $port, $errno, $errstr, $timeout = 30);
if(!$fp){
echo "$errstr ($errno)\n"; //Либо ошибка, либо коннект не удался (файла нет)
}

Вам только надо определить, по какому порту коннектиться

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий