Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie zdjęc z serwera, Problem z pobieraniem zdjęć po FTP
scooti
post 7.05.2018, 22:28:56
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 7.05.2018

Ostrzeżenie: (0%)
-----


Witam serdecznie wszystkich specjalistów PHP.
Zwracam się z prośbą o pomoc, a za razem z pytaniem. Czy coś takiego jest w ogóle możliwe?
Na wstępie opisze o co mi chodzi i czego potrzebuje, aby uniknąć dodatkowych pytań.

Mam trzy kamery, które są administrowane przez zewnętrzną firmę, kamery co minute robią zdjęcie, które zapisywane jest na serwerze właściciela kamer. Chciał bym publikować zdjęcia w formie krótkiego filmiku (przegląd ostatnich 24 godzin) na własnej stronie internetowej. Mechanizm do filmu mam i działa, po wgraniu zdjęć do odpowiednich katalogów, skrypt wykonuje montaż i można obejrzeć w 40 sekund ostatnie 24 godziny pogodę i stan lotniska.

No i tu zaczynają się problemy, nie jestem w stanie pobrać zdjęć z serwera po FTP na własny serwer (Komunikat: Plik nie istnieje).
Otrzymałem zgodę i dostęp do katalogów przez FTP, gdzie zapisywane są zdjęcia.
Moje założenia są takie:
1. Skrypt odpalany jest co 5 minut, przez cron-a i loguje się na serwerze.
2. Po zalogowaniu, sprawdza ostatni zapisany plik.
3. Pobieram go do wskazanego prze zemnie katalogu.
4. Podczas zapisu zmieniam jego nazwę.
Poniżej moje wypociny...

  1. <?php
  2. $ftp = "domena.pl";
  3. $ftp_port = "1111";
  4. $uzytkownik = "login:-)";
  5. $haslo = "haslo:-(";
  6.  
  7. echo "<p>Laczenie z $ftp</p>";
  8.  
  9. if ( $polaczenie = ftp_connect( $ftp ) ) {
  10.  
  11. echo "<p>Polaczono z $ftp</p>";
  12.  
  13. if ( ftp_login( $polaczenie, $uzytkownik, $haslo ) ) {
  14.  
  15. $pliki = ftp_nlist( $polaczenie, '/sciezka/katalogu/docelowego/' );
  16. foreach ( $pliki as $plik )
  17. echo "<p>.$plik.</p>";
  18.  
  19. // otwarcie katalogu ze zdjęciami
  20. $data = date( "Ymd" );
  21. $godz = date( "His" );
  22. $nazwa = 'WspolnaNazwaDlaPliku';
  23. $kam1link = "MojKatalog/" . $nazwa . "_" . $data . "_" . $godz . "M";
  24.  
  25. if ( $handle = opendir( $polaczenie ) ) {
  26. while ( false !== ( $file = readdir( $handle ) ) ) {
  27. if ( is_file( $polaczenie . '/sciezka/katalogu/docelowego/' . $file ) && ( ( $kiedy = filemtime( $polaczenie . '/sciezka/katalogu/docelowego/' . $file ) ) > $najnowszy ) ) {
  28. $najnowszy = $kiedy;
  29. $najnowszy_nazwa = $file;
  30. }
  31. }
  32. closedir( $handle );
  33. }
  34.  
  35. // zapisanie i zamiana nazwy pliku na docelowym serwerze
  36. $size = getimagesize( $polaczenie . '/sciezka/katalogu/docelowego/' . $najnowszy_nazwa );
  37. $fp = fopen( $polaczenie . '/sciezka/katalogu/docelowego/' . $najnowszy_nazwa, "rb" );
  38.  
  39. if ( $size && $fp ) {
  40.  
  41. $contents = file_get_contents( $polaczenie . '/sciezka/katalogu/docelowego/' . $najnowszy_nazwa );
  42. $fp = fopen( "$kam1link.jpg", 'w' );
  43.  
  44. fwrite( $fp, $contents );
  45. fclose( $fp );
  46.  
  47. echo '<p>Plik pobrano</p>';
  48.  
  49. } else {
  50.  
  51. echo '<p>Plik nie istnieje</p>';
  52. }
  53. echo '<p>Najnowszy plik to: ' . $najnowszy_nazwa . ', bo z dnia: ' . date( "M-d-Y G:i:s", $najnowszy ) . '</p>';
  54. include '$najnowszy';
  55.  
  56. } else {
  57. echo "Nie mozna zalogowac uzytkownika $uzytkownik do serwera $ftp";
  58. ftp_close( $polaczenie );
  59. }
  60. } else {
  61. echo "Nie mozna polaczyc się z serwerem $ftp";
  62. }
  63. ?>


Skrypty sprawdzałem i działają, ale w odpowiednich warunkach. Połączenie FTP działa i loguje się na serwerze. Jeśli chodzi o pobranie pliku też dział, ale jak chcę pobrać plik z serwera, na którym znajduje się skrypt ( z katalogu a1/ do katalogu b1/).
W momencie kiedy chcę połączyć oba mechanizmy i chcę pobrać plik po FTP (z katalogu domena.pl/sciezka/katalogu/docelowego/ do katakogu MojKatalog/), jest klop :-(.

Ktoś coś Poradzi?

Drobna trudność – a może i nie, serwer, na której jest moja strona posiada interproter PHP5.

Ten post edytował scooti 7.05.2018, 22:37:45
Go to the top of the page
+Quote Post
LowiczakPL
post 8.05.2018, 06:52:22
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


nie kombinuj z PHP tylko użyj LFTP do synchronizacji


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 07:25