Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] bezpieczne masowe kopiowanie plików
Forum PHP.pl > Forum > Przedszkole
!*!
  1. <?php
  2. $nowy = 'files/plik1.doc';
  3. $nowy2 = 'files/plik2.doc';
  4. $nowy3 = 'files/plik3.doc';
  5. $nowy4 = 'files/plik4.doc';
  6. $nowy5 = 'files/plik5.doc';
  7. $nowy6 = 'files/plik6.doc';
  8.  
  9. $plik ="doc/plik1.doc";
  10. $plik2 ="doc/plik2.doc";
  11. $plik3 ="doc/plik3.doc";
  12. $plik4 ="doc/plik4.doc";
  13. $plik5 ="doc/plik5.doc";
  14. $plik6 ="doc/plik6.doc";
  15.  
  16. if (!copy($plik, $nowy)) {}
  17. if (!copy($plik2, $nowy2)) {}
  18. if (!copy($plik3, $nowy3)) {}
  19. if (!copy($plik4, $nowy4)) {}
  20. if (!copy($plik5, $nowy5)) {}
  21. ?>


Czy to jest poprawny sposób przenoszenia kilku plików z katalogi a do katalogu b, i czy/gdzie muszę tutaj dać basename? Jest Jeszcze coś konieczne aby to zabezpieczyć?
phpion
Jeżeli działa to poprawny. Po co ci jakieś zabezpieczenia skoro i tak wszystko masz zaszyte w kodzie i nie dopuszczasz żadnej ingerencji z zewnątrz?

PS: łatwiej by ci było zapisać to w formie tablicy i skorzystać z pętli np.
  1. <?php
  2. $tab = array(
  3.    'doc/plik1.doc' => 'files/plik1.doc',
  4.    'doc/plik2.doc' => 'files/plik2.doc'
  5. );
  6.  
  7. foreach ($tab as $k => $v) {
  8.    if (!copy($k, $v)) {
  9.        echo 'Blad przy '.$k.'<br>';
  10.    }
  11. }
  12. ?>

Nie sprawdzałem ale powinno hulać.
Vexator
poza tym, jeśli kopiujesz wszystkie pliki, to skorzystaj z opendir i w pętli, odczytując katalog kopiuj copy($dir_z.$file, $dir_do.$file);

  1. <?php
  2. $dir_z  = "./doc/";
  3. $dir_do = "./files/";
  4.  
  5. if (is_dir($dir_z))
  6. {
  7.    if ($dh = opendir($dir_z))
  8.    {
  9.        while (($file = readdir($dh)) !== false)
  10.        {
  11.            if (filetype($file)=="file") copy($dir_z.$file, $dir_do.$file);
  12.        }
  13.        closedir($dh);
  14.    }
  15. }
  16. ?>


p.s. jeśli chcesz przenieść to użyj rename();
erix
Ekhm, taka mała dygresja, ale jeśli tylko nie są zablokowane polecenia systemowe, o wiele efektywniej jest użyć poleceń cp/copy, a nie via PHP.

Poza tym: http://luktom.net/blog/112-iteratory-w-php...rectoryiterator
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.