Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pobieranie pliku na swój serwer FTP
Forum PHP.pl > Forum > Przedszkole
ShamY
Cześć,
korzystam z API jednego z serwisów pogodowych i problem w tym, że plik JSON, który oni trzymają na swoim serwerze otwiera się bardzo wolno przez co i moja strona muli niemiłosiernie. Pobrałem ręcznie ten plik na swój serwer i działa bardzo szybko, stąd chciałbym to zautomatyzować w jakiś sposób.


mam taki kod, ale zwraca błąd "Cannot upload", czy ktoś mógłby mi powiedzieć na co zmienić, tak aby to działało? Uprawnienia pliku ustawione na 777

  1. <?php
  2.  
  3. $fp = fopen('****', 'r+');
  4. fputs($fp, $current);
  5. rewind($fp);
  6.  
  7. $upload = ftp_fput($conn_id, $ftp_path, $fp, FTP_BINARY);
  8. fclose($fp);
  9.  
  10. $host = '*****';
  11. $usr = '*****';
  12. $pwd = '*****';
  13. $local_file = 'dane.json';
  14. $ftp_path = 'www/';
  15. $conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
  16.  
  17. ftp_pasv($conn_id, true);
  18. ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
  19. // perform file upload
  20. ftp_chdir($conn_id, '/public_html/');
  21. $upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);
  22. if($upload) { $ftpsucc=1; } else { $ftpsucc=0; }
  23. // check upload status:
  24. print (!$upload) ? 'Cannot upload' : 'Upload complete';
  25. print "\n";
  26. // close the FTP stream
  27. ftp_close($conn_id);
  28.  
  29. ?>
trueblue
Dlaczego dwukrotnie używasz ftp_fput/ftp_put, a nie raz ftp_get/ftp_fget?
nospor
No i skoro ci nie dziala to wypadaloby wyswietlic jeszcze blad. Z jakiegos powodu przeciez nie dziala

https://www.php.net/manual/en/function.error-get-last.php

ps: przenosze
ShamY
@nospor, do kodu wkleiłem:
  1. <?php
  2. print_r(error_get_last());
  3. ?>

nie pokazuję żadnego błędu, tylko ten, który jest w skrypcie - "Cannot upload".

@trueblue:
usunąłem te linijki, które się dublowały i zmieniłem. Nadal to samo

Aktualny kod:
  1. <?php
  2. print_r(error_get_last());
  3. ?>
  4. <br><br>
  5. <?php
  6.  
  7. $fp = fopen('***', 'r+');
  8. fputs($fp, $current);
  9. rewind($fp);
  10.  
  11. $host = '***';
  12. $usr = '***';
  13. $pwd = '***';
  14. $local_file = 'dane.json';
  15. $ftp_path = 'www/';
  16. $conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
  17.  
  18. ftp_pasv($conn_id, true);
  19. ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
  20. // perform file upload
  21. ftp_chdir($conn_id, '/www/');
  22. $upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);
  23. if($upload) { $ftpsucc=1; } else { $ftpsucc=0; }
  24. // check upload status:
  25. print (!$upload) ? 'Cannot upload' : 'Upload complete';
  26. print "\n";
  27. // close the FTP stream
  28. ftp_close($conn_id);
  29.  
  30. ?>
nospor
Kurcze....
no ale to

print_r(error_get_last());

to sie daje po ewentuanym bledzie a nie przed. Oczekujesz ze to przyszlosc ci zczyta?
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.