PHP Загрузить поле назначения другого сервера - PullRequest
2 голосов
/ 08 августа 2011

У меня есть веб-сайт, который я назову website.com, который расположен на сервере1.На сайте.com есть поле для загрузки файла.Когда кто-то загружает файл на website.com, я не хочу, чтобы файл загружался на server1, я хочу, чтобы он загружался на другой сервер, server2.Каков наилучший способ сделать это?Могу ли я сделать это с помощью php, сценария оболочки?

После того, как файл загружен на server2, у меня есть сценарий оболочки, который нужно выполнить для файла, который мне также в конечном итоге придется выяснить, как запустить с server1.

Надеюсь, это имеет смысл, заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

другой возможный способ сделать это - загрузить этот файл на сайт website.com и использовать CURL для отправки изображения на другой сервер.После этого вы можете удалить изображение снова.

см. CURL PHP отправляет изображение для получения дополнительной информации.

- ОБНОВЛЕНИЕ -

Для подключения по SSH вам необходимо:установите дополнительные библиотеки, чтобы позволить php устанавливать соединение SSH.отличный учебник можно найти здесь .

- ОБНОВЛЕНИЕ 2 - Вопрос заинтриговал меня, поэтому я расширил свои исследования.Кажется, на Sourceforge есть еще одна PHP-библиотека phpseclib документации на на странице 5 есть некоторая информация о том, как это работает.

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

Я также сталкивался с это для помощи с phpseclib.

в конце концов, я бы не выбрал решение, подобное этому.Я бы поменял ваш сайт с server1 на server2, просто чтобы все было в одном месте.

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

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

Вы можете получить HTML-страницы с формой, обслуживаемой для сервера 1, но вызвать PHP для загрузки с сервера 2.

Обновление Например ...

Сервер 1 имеет файл index.php , который имеет форму:

<form action='http://server2.com/some_directory/uploader.php' method='POST'>
 .... Some form code
</form>

Форма в index.php указывает на скрипт PHP на сервере 2 через URL.Этот PHP-скрипт теперь может обрабатывать ввод.

Конечно, это будет работать только в том случае, если server2 подключен, доступный из Интернета, в противном случае вам придется использовать какой-то сценарий оболочки на сервере 1 для перемещения файлов навнутренняя сеть при их загрузке на сервер 1.

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