Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] filesize
Forum PHP.pl > Forum > Gotowe rozwiązania
JOHNY
Witam spotkał się ktoś a może wi jak wiciągnąć rozmiar pliku .zip czy .rar z konkretnego pliku na ftp questionmark.gif

Przykłady na forum dotyczą tylko samych plików txt czy php

  1. <?php
  2. $my_file = &#092;"config.php\"; // nazwa pliku;] 
  3. $file_size = filesize($my_file); 
  4. if ($file_size >= 1073741824) { 
  5.         $show_filesize = number_format(($file_size / 1073741824),2) . &#092;" GB\"; 
  6. } elseif ($file_size >= 1048576) { 
  7.         $show_filesize = number_format(($file_size / 1048576),2) . &#092;" MB\"; 
  8. } elseif ($file_size >= 1024) { 
  9.         $show_filesize = number_format(($file_size / 1024),2) . &#092;" KB\"; 
  10. } elseif ($file_size >= 0) { 
  11.         $show_filesize = $file_size . &#092;" bytes\"; 
  12. } else { 
  13.         $show_filesize = &#092;"0 bytes\"; 
  14. } 
  15. echo &#092;"File $my_file is $show_filesize \"; 
  16. ?>


W ogóle czy da się wyciągnąć rozmiar pliku na ftp questionmark.gif bo nic nie znalazłem

Jakaś rada mile widziana
Znaczy głownie chodzi mi oto jak rozwiązać problem w przypadku linka ftp:// bo jak mu dam konkretną ścieżke do pliku co jest na servie to działa oczywiście prawidłowo
Pozdrawiam
GrayHat
  1. <?
  2. $cid = ftp_connect(ftp.serwer.pl);
  3. $ftp = ftp_login($cid,&#092;"nick\",\"pass\");
  4.  
  5. if ($ftp){
  6. echo &#092;"200 OKn\";
  7. echo &#092;"wielkosc pliku plik.zip: filesize($cid,\"/www/plik.zip\");
  8. }
  9. ?>


pisane z glowy. moga wystapic literowki
tiraeth
  1. <?php
  2. $cid = ftp_connect(&#092;"ftp.serwer.pl\");
  3. $ftp = ftp_login($cid, &#092;"nick\", \"pass\");
  4.  
  5. if ($ftp)
  6. {
  7.    echo &#092;"Wielkosc pliku plik.zip: \".ftp_size($cid, \"/www/plik.zip\");
  8. }
  9. ?>
JOHNY
No tylko problem w tym że ja urla ściągam z bazy danych a pozatym nie wszystkie rekordy posiadają ftp:// część jest też odnośnikiem do katalogu z download sad.gif
ex:
$row['adr'];
ftp://serw1.pl/down/nick/plik.zip
ftp://serw2.pl/nick/plik2.rar
down/lol/nick/plik3.zip

No jak z takich value z adr zrobić żeby sciągało filesiez questionmark.gif tu jest problem i nie wiem jak się za to zabrać
/down/lol/nick/plik3.zip - tu nie ma problemu bo działa na tym kodzie co podałem w pierwszym poście.

Co innego jeśli w bazie jest kilka serverów to przecież nie ma sensu do każdego robić ftp_connect co by się wiązało zapewne z explode chociaż wątpie czy by się dało wyciągnąć samo ftp://serv2.pl czy ftp://serw1.pl + końcówki /down/nick... oraz /nick/...

Nie ma jakiegoś uniwersalnego rozwiązania questionmark.gif
Wave
Spróbuj tak:
  1. <?php
  2. $str // adres z bazy
  3. $url = parse_url($str);
  4. if($url['scheme'] == 'ftp') {
  5. $cid = ftp_connect($url[host]);
  6. $ftp = ftp_login($cid, $url[user], $url[pass]);
  7. if($ftp) $size = ftp_size($cid, $url[path]);
  8. }
  9. else {
  10. $size = filesize($srt);
  11. }
  12. ?>
JOHNY
Mam "picolo problem" i takie pytanie bo troche poprawiłem swojego skrypta a nie wiem jak zrobić że jak ftp jest offline zeby mi wywalało 0 bytes

  1. <?php
  2. while($row = mysql_fetch_array($wynik)) {
  3.  $query2 = &#092;"SELECT * FROM pliki WHERE id='\".$row['id'].\"'\";
  4.  $wynik2 = mysql_query($query2);
  5. while($row2 = mysql_fetch_array($wynik2)) {
  6. $url = $row2['screen'];
  7. if (jest_plik($url)) {
  8. $row2['screen'];
  9. } else {
  10. $row2['screen'] = &#092;"images/no_foto_b.jpg\";
  11. }
  12. $size['pre'] = @getimagesize($row2['screen']); 
  13. $pic_width = ($size['pre'][0] + 20);
  14. $pic_height = ($size['pre'][1] + 25);
  15.  
  16. $str = $row2['adr'];// adres z bazy
  17. $urlf = @parse_url($str);
  18.  
  19. if($urlf['scheme'] == 'ftp') {
  20. $cid = @ftp_connect($urlf[host]);
  21. $ftp = @ftp_login($cid, $urlf[user], $urlf[pass]);
  22. if($ftp) {
  23.  
  24. $file_size = @ftp_size($cid, $urlf[path]);
  25. if ($file_size >= 1073741824) { 
  26. $sizef = number_format(($file_size / 1073741824),2) . &#092;" GB\"; 
  27. } elseif ($file_size >= 1048576) { 
  28. $sizef = number_format(($file_size / 1048576),2) . &#092;" MB\"; 
  29. } elseif ($file_size >= 1024) { 
  30. $sizef = number_format(($file_size / 1024),2) . &#092;" KB\"; 
  31. } elseif ($file_size >= 0) { 
  32. $sizef = $file_size . &#092;" bytes\"; 
  33. } else { 
  34. $sizef = &#092;"0 bytes\"; 
  35. } 
  36. } 
  37. else { $sizef = &#092;"0 bytes\"; }
  38.  
  39. }
  40. else {
  41. if (file_exists($str) == true) {
  42. $file_size = @filesize($str);
  43. if ($file_size >= 1073741824) { 
  44. $sizef = number_format(($file_size / 1073741824),2) . &#092;" GB\"; 
  45. } elseif ($file_size >= 1048576) { 
  46. $sizef = number_format(($file_size / 1048576),2) . &#092;" MB\"; 
  47. } elseif ($file_size >= 1024) { 
  48. $sizef = number_format(($file_size / 1024),2) . &#092;" KB\"; 
  49. } elseif ($file_size >= 0) { 
  50. $sizef = $file_size . &#092;" bytes\"; 
  51. } else { 
  52. $sizef = &#092;"0 bytes\"; 
  53. } 
  54. } 
  55. else { $sizef = &#092;"0 bytes\"; }
  56. }
  57.  
  58. }
  59.  
  60. echo &#092;"<tabel>.... $sizef ....</table>\";
  61.  
  62. }
  63. ?>
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.