Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przerzut danych on fly z serwer-serwer-client?
Forum PHP.pl > Forum > PHP
evo
Witam,

Opisze najpierw sytuacje,

Mam aplikacje ktora wyglada to mniej wiecej tak:

[Serwer FTP] <-FTP-> [Serwer HTTP+php] <-HTTP-> [Client]

napisalem se ja do obejscia braku FTP u nas w szkole.

Jej problem polega na tym ze jest strasznie wolna bo pobierajac plik z FTPa zapisuje go na Serwerze HTTP i dopiero po zapisaniu zaczynam przesylac go Klijenta.

Podczas wysylania pliku na FTPa to samo tylko ze z drugiej strony. Wysylam plik na serwer HTTP a z tamtad po otrzymaniu na FTPa

Czy jest jakas mozliwa przesylac te pliki on fly?
evo
Nikt nie ma zadnego pomyslu? sad.gif

Czy jest to nie do zrobienia w php? :?
Użytkownik
Obawiam się, że nie.
evo
tego sie wlasnie obawialem sad.gif szkoda

Moze jednak ktos wpadnie na jakis pomys smile.gif
Użytkownik
Ale przejrzyj funkcje fopen() i fputs().
A jeśli chodzi o brak FTP to spróbuj SSH.
dob
Cytat
A jeśli chodzi o brak FTP to spróbuj SSH.


Jak może byc brak FTP jeżeli kolega łączy sie skryptem z serwerem FTP po przez serwer HTTP za pomocą ftp_connect jak sądze

Cytat
[Serwer FTP] <-FTP-> [Serwer HTTP+php] <-HTTP-> [Client]


A co do tych funkcji to i tak nie zadziała bo php jest po stronie serwera a nie klienta i wszystko wykonywane jest na serwerze - odczyt zapis itp. więc nie zapiszesz u klienta, możesz zapisac tylko na serwerze i dac nagłowek do otwarcia pliku (np header location)

wiem bo sam kiedys cos takiego napisałem
evo
Cytat
Cytat
A jeśli chodzi o brak FTP to spróbuj SSH.


Jak może byc brak FTP jeżeli kolega łączy sie skryptem z serwerem FTP po przez serwer HTTP za pomocą ftp_connect jak sądze

Cytat
[Serwer FTP] <-FTP-> [Serwer HTTP+php] <-HTTP-> [Client]


Dokladnie!

Brak FTP jest w szkole tzn. Porty sa pozamykane , ale na serwerze FTP jest i Aplikacje tez mi dziala tylko ze jak juz pisalem wolna sad.gif

Bo sciagam pliki po dwa razy i musze czekac az plik zostanie sciagniety do konca na serwerze by go podac do klijenta

@Użytkownik
Szczerze powiedziawszy twoja podpowiedz bym obejrzal opisy funkcji fopen() i fputs() mnie zirytowala , czy naprawde myslisz ze ktos kto napisal aplikacje FTP<->HTTP nie zna tych podstawowch funkcji??


@all
Wracajac do tematu:

Teraz wpadlo mi do glowy ze...

php ma funkcje umozliwjajace sciaganie pliku z ftpa bezposrednio do strumienia otwartego pliku bez blokowania go, wiec pomyslalem ze sprobuje zasymulowac naglowek HTTP do klijenta ze podaje plik o danym rozmiarze i bede podawal dodana zawartosc do pliku z FTPa na serwerze do pliku sciaganego HTTP przez klijenta.

Czy to wyjdzie okaze sie po swietach.


Jesli ktos by mial jakis inny ciekawy pomysl lub jakas ciekawa aluzje do mojego to prosil bym o feedback.

Z gory dziekuje smile.gif[/b]
evo
Cytat
A co do tych funkcji to i tak nie zadziała bo php jest po stronie serwera a nie klienta i wszystko wykonywane jest na serwerze - odczyt zapis itp.

Jak bys postaral sie zrozumiec sens mojej aplikacji to nie wypisywal bys takich bzdur.

php jest po stronie serwera..mhmmmm..Nobla ci powinni dac za to winksmiley.jpg

8) tongue.gif

Cytat
więc nie zapiszesz u klienta, możesz zapisac tylko na serwerze i dac nagłowek do otwarcia pliku (np header location)

wiem bo sam kiedys cos takiego napisałem


tak tez mam lecz jak juz pisalem przeciez musisz czekac by plik sie sciagna w calosci i dopiero go podajesz do klijenta po zakonczeniu downloadu FTP (na SERWERZE!)

ja szukam rozwiazanie on fly!
Użytkownik
Czekać na php x.x który będzie obsługiwał strumienie smile.gif.
evo
Cytat
Czekać na php x.x który będzie obsługiwał strumienie smile.gif.

Prosze cie wstrzymaj sie ze swoimi pustymi wypowiedziami bo nie wnosza one nic konstruktywanego do watku! 8)
dob
Cytat
php jest po stronie serwera..mhmmmm..Nobla ci powinni dac za to winksmiley.jpg


O dzięki odbiore go chyba od ciebie osobiscie - jest to jezyk wykonywany po stronie serwera to nie java script
Cytat
php różni się od skryptów wykonywanych po stronie klienta takich jak np. JavaScript tym, że cały kod php wykonywany jest na serwerze


Cytat
Jak bys postaral sie zrozumiec sens mojej aplikacji to nie wypisywal bys takich bzdur.

A ty zrozum ze to akurat nie pisałem do ciebie tylko do Użytkownika - jego funkcje są tu nie potrzebne bo one nic nie zmienią

Tak sie składa ze dobrz ewiem o co ci chodzi bo napisałem podobny skrypt i tak samo działa jak twój.
evo
Cytat
Cytat

php jest po stronie serwera..mhmmmm..Nobla ci powinni dac za to winksmiley.jpg


O dzięki odbiore go chyba od ciebie osobiscie - jest to jezyk wykonywany po stronie serwera to nie java script
Cytat
php różni się od skryptów wykonywanych po stronie klienta takich jak np. JavaScript tym, że cały kod php wykonywany jest na serwerze


Ciebie tez poprosze o wstrzymanie sie z takimi komentarzami!



Cytat
Cytat

Jak bys postaral sie zrozumiec sens mojej aplikacji to nie wypisywal bys takich bzdur.

A ty zrozum ze to akurat nie pisałem do ciebie tylko do Użytkownika - jego funkcje są tu nie potrzebne bo one nic nie zmienią

Tak sie składa ze dobrz ewiem o co ci chodzi bo napisałem podobny skrypt i tak samo działa jak twój.


j.w.

i 1000 innych osob tez takie cos napisalo i co z tego?? ja szukam rozwiazania on fly!

EOT

Prosze traktowac watek jako zamkniety, widze ze ciezko tu porozmawiac z kims normalnym.

Ci co cos wiedza siedza cicho a mlodziki sie madrza.

Szkoda bo za czasow Kryra,Mistycusa,Castora,Setha,Hypera,Stera bylo tutaj calkiem fajnie :wink:
spenalzo
Spokój w piaskownicy bo łopatki pozabieram tongue.gif

Jeżeli FTP jest na tym samym serwerze co php, to postaraj się o bezpośredni dostęp php do plików z ftp ale po dysku a nie przez protokół. Wtedy otwierasz taki plik do wysłania i wywalasz jego zawartość do przeglądarki.
evo
Wlasnie o to chodzi ze nie jest na tym samym serwerze sad.gif
Użytkownik
[xml:1:1e0fdb227b]plepleple <iframe src="plik:plik"></iframe>[/xml:1:1e0fdb227b]
lub
[php:1:1e0fdb227b]<?php
lheader("Location: ftp://plepleple");

?>[/php:1:1e0fdb227b]
adwol
Cytat
Czy jest jakas mozliwa przesylac te pliki on fly?

Jest.
[php:1:38ba89253c]<?php
header('Content-Type: application/octet-stream');
$stdout = fopen('php://stdout', 'w');
ftp_fget($ftp, $stdout, $plik, FTP_BINARY);
?>[/php:1:38ba89253c]
Przy uploadzie możesz to robić normalnie z pliku ponieważ php sam Ci uploadnięty plik wyciągnie z requestu i umieści gdzieś na dysku.
evo
Cytat
[php:1:9b07a1077b]<?php
header('Content-Type: application/octet-stream');
$stdout = fopen('php://stdout', 'w');
ftp_fget($ftp, $stdout, $plik, FTP_BINARY);
?>[/php:1:9b07a1077b]

biggrin.gif Dziekuje ci bardzo :!: to jest to czego szukalem biggrin.gif Kiedys natkanlem sie na obsluge STDOUT i STDIN w php ale zapomnialem jak sie to obslugiwalo winksmiley.jpg


Cytat
Przy uploadzie możesz to robić normalnie z pliku ponieważ php sam Ci uploadnięty plik wyciągnie z requestu i umieści gdzieś na dysku.


Przy uploadzie tez musze tak do tego podejsc przez STDIN, bo umieszczenie przez php pliku na dysku mi nic nie daje bo serwer FTP jest w moim przypadku fizycznie innym serwerem niz HTTP


Dzieki :wink:
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.