Как загрузить файл...

Статус
В этой теме нельзя размещать новые ответы.

qwerty

Постоялец
Регистрация
10 Апр 2006
Сообщения
75
Реакции
1
Доброго дня али вечера!
Вопрос дня сегодня следующий.Возможно ли и если возможно то как:)Буду благодарен примеру с кодом.
А интереусет следующее.Есть три моих сервера.На сервере 1 стоит форма загрузки файлов на сервер,что то похожее на подобие рапидшаре и любых других обменников. И на сервере 2, располагается файл.
С сервера 3 хочу загрузить файл с сервера 2 на сервер 1.
Самый простой вариант это качаем файл на сервер 3 после того как файл скачался загружаем его на сервер 1.Теперь знатоки внимание вопрос.Можно ли не ждать пока файл загрузится полностью можно ли скачали часть данных скажем в память или еще как и передать серверу для загрузки.и так далее пока порциями не загрузим весь файл полностью.Тоесть отдавать его сразу частями и не сохранять на жеский диск сервера?
 
Вам поможет HTTP/1.1: Header Field Definitions
(если "сервер 1" при раздаче поддерживает докачку)

Для просмотра ссылки Войди или Зарегистрируйся
Секция "14.16 Content-Range"

Upd
У протокола FTP есть возможность FXP (Server-to-Server Transfers) - с третьего сервера объявить о начале передачи файла с "сервера 1" на "сервер 2" минуя третий сервер.

Страшненький пример на PHP можно посмотреть Для просмотра ссылки Войди или Зарегистрируйся
 
как расположены сервера, может они доступны локально друг другу? по какому протоколу будет идти обмен?
 
Теперь знатоки внимание вопрос.Можно ли не ждать пока файл загрузится полностью можно ли скачали часть данных скажем в память или еще как и передать серверу для загрузки.и так далее пока порциями не загрузим весь файл полностью.Тоесть отдавать его сразу частями и не сохранять на жеский диск сервера?
сокеты используй, я php не знаю, но примерно так будет
data=socket.recv(1024) # считать с сервера, предварительно сокет зделать и т.д.
socket.send(data) # послать на сервер, предварительно сокет зделать и т.д.

только возможны проблемы с тайм-аутами т.к. один сервер может не успеть отдать или наоборот принять, но вообщем возможно, почитай про сокеты и вперед
 
Вам поможет HTTP/1.1: Header Field Definitions
(если "сервер 1" при раздаче поддерживает докачку)

Для просмотра ссылки Войди или Зарегистрируйся
Секция "14.16 Content-Range"

Upd
У протокола FTP есть возможность FXP (Server-to-Server Transfers) - с третьего сервера объявить о начале передачи файла с "сервера 1" на "сервер 2" минуя третий сервер.

Страшненький пример на PHP можно посмотреть Для просмотра ссылки Войди или Зарегистрируйся


Еще одни встречный вопрос.Не подскажете, а как можно узнать поддерживает сервер докачку или нет?Тоесть как это можно определить програмно?Какой запрос надо послать и что должно быть в ответе?
 
1. Сервер должен быть HTTP 1.1
2. Должен понимать директиву Range
3. Должен отвечать статусом 206 на нее.
 
ЗАходишь сюда
Скачиваешь любой класс для аплоада и уаля!15 минут и у тебя классный скрипт закачки файлов на сервер!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху