Загрузить файл на удаленный сервер (PHP) - PullRequest
1 голос
/ 01 февраля 2010

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

Размер файла будет около 15 МБ, поэтому они не являются небольшими файлами, и я хотел бы избежать двойной загрузки, если это возможно (загрузка на сервер, затем передача на удаленный сервер).

Любое направление по этому вопросу приветствуется.

Ответы [ 3 ]

3 голосов
/ 01 февраля 2010

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

2 голосов
/ 01 февраля 2010

Вы можете загрузить файл непосредственно на сервер хранения, указав уникальный ключ в скрытой форме, например:

<form action="http://mystorage.com/upload" method="post">
    <input type="file" name="myfile" />
    <input type="hidden" name="key" value="asdf1234sadfasfd34565xx" />
</form>

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

0 голосов
/ 01 февраля 2010

Если второй сервер может быть доступен из Интернета, тогда просто отправьте HTML-форму на сервер хранения, а затем перенаправьте на первый веб-сервер. Во время перенаправления вы можете передать дополнительные переменные через строку запроса GET.

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