Napisałem klasę, która może pomóc komuś w przenoszeniu plików na serwer. Na serwerze z którego przenosimy, odpalamy skrypt:

  1. <?php
  2. $Backup = new BackupFiles();
  3. $Backup->GenerateArrayValues('./');
  4. echo $Backup->ReturnFilesArray();
  5. ?>

Wygenerowaną tablicę wklejamy do pliku z klasą, po czym zmieniamy powyższe linie na:
  1. <?php
  2. $Backup = new BackupFiles();
  3.  $Backup->CheckFiles($Files);
  4. ?>



  1. <?php
  2. Class BackupFiles{
  3. var $ArrayGenerator = '$Files = array(';
  4.  
  5. function GenerateArrayValues($dir='./')
  6. {
  7.  
  8. $dir_root = $dir;
  9. $dir = opendir($dir);
  10. $dirs = '';
  11. $files = '';
  12. $forbidden = array('.', '..', 'thumbs.db');
  13. while($c = readdir($dir))
  14. {
  15.  
  16. if(!in_array($c, $forbidden)){
  17.  if(is_dir($dir_root.$c)){
  18. $this->GenerateArrayValues($dir_root.$c.'/'); //rekurencja
  19.  }
  20.  else{
  21.  
  22.  $this->ArrayGenerator .= '''.$dir_root.$c.''=>'.filesize($dir_root.'/'.$c).', <br />';
  23.  }
  24.  }
  25. }
  26.  
  27. }
  28. function ReturnFilesArray(){
  29. return substr($this->ArrayGenerator, 0, -8).');';
  30. }
  31. function CheckFiles($Array){
  32. echo '<table style="width: 100%" cellpadding="0" cellspacing="0"><tbody>
  33. <tr><td style="width: 50%; font-weight: bold">Plik</td><td style="width: 50%; font-weight: bold">Co się stao</td></tr>';
  34. foreach($Array AS $File=>$FileSize){
  35. if(file_exists($File)){
  36. if(filesize($File)<>$FileSize){
  37. echo '<tr><td><strong>'.$File.'</strong></td><td><span style="color: red;">Plik wgrany niepoprawnie lub wgrywany w chwili obecnej na serwer (Rozmiar pliku: '.filesize($File).', powinno być '.$FileSize.')</span></td></tr>';
  38. }
  39. }
  40. else{
  41.  echo '<tr><td><strong>'.$File.'</strong></td><td><span style="color: #000000;">Brak pliku</span></td></tr>';
  42. }
  43. }
  44. echo '</tbody></table>';
  45. }
  46. }
  47. ?>