Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] bezpieczne masowe kopiowanie plików
!*!
post
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


  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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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ć.

Ten post edytował phpion 30.12.2008, 11:46:00
Go to the top of the page
+Quote Post
Vexator
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 6
Dołączył: 28.08.2006
Skąd: Gdańsk

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


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();

Ten post edytował Vexator 30.12.2008, 13:22:27
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.12.2025 - 08:42