PHP Windows копировальная сеть - PullRequest
0 голосов
/ 23 августа 2011
$tmpUploadFolder = "C:\\www\\intranet\\uploads";
//$finalUploadFolder = "file:////server//photos//overwrite";
$finalUploadFolder = "file://server/photos/overwrite";
//$finalUploadFolder = "\\\\server\\photos\\overwrite";
//$finalUploadFolder = "\\server\photos\overwrite";
//$finalUploadFolder = "P:\\overwrite";
//$finalUploadFolder = "P:/overwrite";

$from = $tmpUploadFolder . "\\" . $_REQUEST['ext'];
$to = $finalUploadFolder. "\\" . $_REQUEST['ext'];
copy($from, $to);

Я пытаюсь загрузить PHP с помощью инструмента jquery. Инструмент Jquery прекрасно помещает файл в каталог загрузки PHP до отправки страницы. Поэтому я хочу (после публикации формы) быстро переместить файл из его папки tmp (он уже будет там, вы видите) в конечный пункт назначения на сервере хранилища изображений (я использую переменную _REQUEST ['ext'] держать имя файла JQuery удерживается.

Будьте уверены, что эти пути хороши, они прекрасно работают в душе. Как вы можете видеть, я пробовал каждый известный мне синтаксис unc.

Я не могу на всю жизнь заставить php работать. Я написал VBS "copy . file" и попытался запустить его под whost.exe через system () в php, я скачал oldeskool runas.exe и попытался скопировать его через system (), я использовал unc пути и сетевые ресурсы, а также подключил сетевые диски, я сделал службу apache «вход в систему» ​​администратором или даже сделал специальный пользовательский adhoc новый пользователь только для этого и предоставил ему полные права

Работает нормально, если я поменяю P: \ на C: \

Я ЗНАЮ, ЧТО ЭФФЕКТИВНО РАЗРЕШЕНИЯ RE: APACHE - НО МЫ НЕ РАБОТАЕМ АКТИВНОЙ КАТАЛОГОМ, И Я НЕ МОГУ ПОЛУЧИТЬ ЭТО РАБОТАТЬ

он просто не позволит мне скопировать этот файл в сеть, и для меня это является серьезной главной проблемой.

Есть ли решение? Если вы собираетесь помочь мне с такими вещами, как «это права доступа к файлам», тогда мне понадобится разбить точные и осторожные инструкции, потому что я вырываю свои волосы, потому что я знаю , это права доступа к файлам, но Я просто не могу заставить его работать

Я устал сейчас .., пожалуйста, помогите?


Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

хорошо, я понял это, так что в пользу тех, кто преследует меня, вот решение, которое работает

1.Убедитесь, что служба php windows "apache2.2" работает от имени администратора (я создал пользователя apacheusr, дал ему пароль и выдал его локальным администраторам), чтобы сделать это, щелкнув правой кнопкой мыши свойства "" apache2.2 "служба в инструментах администрирования-> службы и перейдя на вкладку входа в систему -> эту учетную запись и выбрав apacheusr

2.потому что я не запускаю активный каталог, я создал этого пользователя apacheusr на ОБОИХ машинах (phpserver / imageserver) как пользователь локального администратора и дал им ОБА один и тот же пароль пользователя и пароль галочки никогда не истекает.

3. Затем я хотя бы один раз захожу в систему с обоими этими учетными записями. (не спрашивайте меня, почему, но, похоже, это помогло, оно остановило runasexe - от которого я отказался - стонет в душ)

4. В конце концов, на php-сервере щелкните правой кнопкой мыши на папке назначения на imageserver и убедитесь, что этот apacheusr может войти в эту папку. Самый простой способ сделать это, когда вы входите / выходите из системы как apacheusr на своем php-сервере и пытаетесь перейти в папку вашего сервера изображений - тогда вам нужно быть на imagesever и пометить все правильно в бите share / permissions ТОГДА последний бит (где _REQUEST ['ext'] - это имя файла EG: "pic.jpg")

$tmpUploadFolder = "C:\\www\\intranet\\uploads"; 
$finalUploadFolder = "\\\\server\\photos\\overwrite"; 
$from = $tmpUploadFolder . "\\" . $_REQUEST['ext']; 
$to = $finalUploadFolder. "\\" . $_REQUEST['ext']; 
copy($from, $to); 

Приведенный выше код работает!

0 голосов
/ 23 августа 2011

В какой среде вы запускаете php?Apache?IIS?Они работают в основном как служба с системными учетными данными и не могут получить доступ к сетевым ресурсам ...

Измените учетную запись веб-сервера на пользователя, который может писать, и он должен работать (по крайней мере, с одним из этих URL)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...