2010-02-01 3 views
1

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

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

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

ответ

3

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

+0

Учитывая большой размер файла, все равно, чтобы дать пользователю обратную связь в середине загрузки через индикатор выполнения? Или прямая загрузка GIF - лучшее, что я собираюсь получить? – BlueVoid

+0

Самый простой способ иметь индикатор выполнения - использовать загрузчик с флэш-памятью. как jcUpload или swfUpload. –

+0

Нет бесплатной альтернативы? – BlueVoid

0

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

2

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

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

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

Смежные вопросы