Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Передача файлов между серверами в обе стороны


Автор: paxer 27.3.2007, 12:50
Здраствуйте!

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

Далше есть так называемые клиентские сервера (сайты) на которых стоит видео галерея на которой пользователи могут просматривать видео которые доступны для данного клеинтского сервера и данной видео галерии (но все файлы что смотрят юзеры находяться физически и храняться на главноем медиа сервере) самое главное что пользоваители этих клиентских серверов (сайтов с видео галерей) могут делать upload своих файлов которые сохраняются на главноем медиа сервере, но доступны для просмотра с текущего.

То есть задача такова. Написать серверную часть на php для Меди Сервера (хранилища файлов) принимающюю файлы с разных клиентских серверов и идетнификаторы файлов и прочее.

Написать клиентские Видео Галереи (php/asp.net/java/colsfusion) для установки на серверах клиентов.


Воспроc:
Кау лучше организовать передачу зааплоаденного файла с клиентского сервера на главный Медиа Сервер, так чтобы не ыбло проблем с тем что МедиаСервер написан на php а клиентская Видео Галерея на asp.net к примеру.

Варианты

1) Зааплоадить с клиентской галерии прямо сразу на Медиа Сервер возможно ли ?

2) Зааплоадить сначала на клиентский сервер а потом неким демоном сделать передачу этого файла с параметрами авторизации и принадлежности конкретной галереии и клиенту на галвный Медиа сервер?

Рассматривал варианты

1) Web Service (SOAP)
2) standart POST
3) FTP
4) Socet

На мой взягляд standart POST будет самым простым и без проблемным.

Подскадите pls ваше мнение как решить лучше эту проблему ? 


Автор: Golda 28.3.2007, 02:04
Нет проблемы зааплоадить файл не на тот сервер, на котором размещен сайт. Достаточно поставить соответствующий URL в action. Для идентификации галереи можно передать дополнительный параметр в  POST запросе (какой-нибудь hidden field формы).

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



Автор: Sniper 15.6.2007, 13:32
как текст из textarea
Код

<textarea name="favorite" rows="10" cols="50" wrap="virtual">
test test test
</textarea>

сохранить в файл

p.s Я окошком промахнулся

Автор: teroni 15.6.2007, 13:42
Код

$fp = fopen("file.txt", "w");
fwrite($fp, $_POST['favorite']);
fclose($fp);
 - в общих чертах так!

Автор: Sniper 15.6.2007, 13:54
как это с кнопкой совместить?

Код

<?
    print    '<textarea name="favorite" rows="10" cols="50" wrap="virtual">
    test test test
    </textarea><br>';
    print    '<input type="submit" name="submit" value="Получить" />    ';

    $fp = fopen("file.txt", "w");
    fwrite($fp, $_POST['favorite']);
    fclose($fp);        
?>

Автор: Golda 16.6.2007, 00:16
Код

if (isset($_POST['submit']) {
    $fp = fopen("file.txt", "w");
    fwrite($fp, $_POST['favorite']);
    fclose($fp);        
}


А Вам что, форму нужно выводить в обоих случаях: и при GET, и при POST запросе? Обычно удобнее вначале делать анализ ситуации, проверки, действия, а исходя из него уже решать, что выдавать пользователю на экран. Т.е.

Код

if (isset($_POST['submit']) {
    $fp = fopen("file.txt", "w");
    fwrite($fp, $_POST['favorite']);
    fclose($fp);
    
    echo "Спасибо (или что Вы там еще хотите пользователю ответить на посылку информации)";        
} else {
    echo "Тут вывод формы <form ...";

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)