Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]Usuwanie pliku z serwera
Forum PHP.pl > Forum > Przedszkole
viamarimar
Co tu jest nie tak? Korzystam z roznych dostepnych zrodel pomocy itp zeby usunac plik z serwera i zawsze wyrzuca jakis blad

  1. $wynik["kodowanazwa"] //przechowuje nazwe pliku
  2. $wynik["sciezka"] //przechowuje sciezke


poki co wykomentowalem kasowanie z bazy bo chce zrobic kasowanie z dysku, no chyba ze chodzi o to ze takie cos nie dziala na dysku lokalnym (localhost)?!

  1. elseif(isset($_GET['pliki']) && $_GET['pliki']=='usun' && isset($_GET['id']))
  2. {
  3. $id=$_GET['id'];
  4.  
  5. /* mysql_query("DELETE FROM pliki WHERE id='$id'");
  6.   echo 'Pomyślnie usunołeś newsa numer '.$id.'!';
  7. header('Location: index.php') */;
  8.  
  9. $zapytanie = mysql_query ("SELECT * FROM pliki");
  10. if ($zapytanie) {
  11. while ($wynik = mysql_fetch_array($zapytanie)) {
  12. $file = $wynik["kodowanazwa"];
  13. if (!unlink($file))
  14. {
  15. echo ("Error deleting $file");
  16. }
  17. else
  18. {
  19. echo ("Deleted $file");
  20. }
  21. }
  22.  
  23. }


Blad:

  1. Warning: unlink() [<a href='function.unlink'>function.unlink</a>]: Invalid argument in..
johny_s
  1. var_dump($file);

i sprawdź co masz w srodku
viamarimar
Dopisalem:
  1. $zapytanie = mysql_query ("SELECT * FROM pliki WHERE id='$id'");


i zwraca:

  1. string '39db93b013b5e8e68e41787a02d3d2d1.exe' (length=36)


ale nadal nie dziala i blad jest ten sam

  1. elseif(isset($_GET['pliki']) && $_GET['pliki']=='usun' && isset($_GET['id']))
  2. {
  3. $id=$_GET['id'];
  4.  
  5. /* mysql_query("DELETE FROM pliki WHERE id='$id'");
  6.   echo 'Pomyślnie usunołeś newsa numer '.$id.'!';
  7. header('Location: index.php') */;
  8.  
  9. $zapytanie = mysql_query ("SELECT * FROM pliki WHERE id='$id'");
  10. if ($zapytanie) {
  11. while ($wynik = mysql_fetch_array($zapytanie,MYSQL_ASSOC)) {
  12. $file = $wynik["kodowanazwa"];
  13. echo "<hr>";
  14. echo $wynik["kodowanazwa"];
  15. echo $file;
  16. var_dump($file);
  17.  
  18. if (!unlink($file))
  19. {
  20. echo ("Error deleting $file");
  21. }
  22. else
  23. {
  24. echo ("Deleted $file");
  25. unlink($file);
  26. }
  27. }
  28.  
  29. }


39db93b013b5e8e68e41787a02d3d2d1.exe - to cos to nazwa pliku tylko przekodowana przez md5 ale to chyba male znaczenie ma
johny_s
No chłopie masz 2x unlinka, więc jak raz go skasujesz to 2 raz już się nie da, tyle że to by wyświetlało że plik nie istnieje, przy invalid argument musisz mieć tam coś nistringowego przekazywanego do funkcji, tablica, bool czy jakiś obiekt
viamarimar
nie rozumiem. raz sprawdzam drugi kasuje, co jest nie tak?

z jednym unlinkiem tez nie dziala

  1. elseif(isset($_GET['pliki']) && $_GET['pliki']=='usun' && isset($_GET['id']))
  2. {
  3. $id=$_GET['id'];
  4.  
  5. /* mysql_query("DELETE FROM pliki WHERE id='$id'");
  6.   echo 'Pomyślnie usunołeś newsa numer '.$id.'!';
  7. header('Location: index.php') */;
  8.  
  9. $zapytanie = mysql_query ("SELECT * FROM pliki WHERE id='$id'");
  10. if ($zapytanie) {
  11. while ($wynik = mysql_fetch_array($zapytanie,MYSQL_ASSOC)) {
  12. $file = $wynik["kodowanazwa"];
  13.  
  14. if (file_exists($file)) {
  15. unlink($file);
  16. }
  17.  
  18. }
  19.  
  20. }
  21.  
  22. }

nospor
Cytat
nie rozumiem. raz sprawdzam drugi kasuje,

To przetlumacze ci na polski co wczesniej napisales:

Jesli skasowalem to skasuj.

Juz jaśniej?

Cytat
z jednym unlinkiem tez nie dziala
Dalej ten sam blad czy moze juz inny? Jesli masz jakikolwiek blad, to wklej go DOKLADNIE
viamarimar
Nie ma zadnego komunikatu poprostu plik sie nie wykonuje w tej chwili.

czy jest jedna komenda na kasowanie jest unlink? Wyczytalem o czyms takim jak destroy ale nie wiem czy to nie dziala w noszych wersjach PHP tylko



Jesli ifa przerobie tak:

  1. if (!unlink($file)){
  2. echo ("Error deleting $file");
  3. }
  4. else{
  5. echo ("Deleted $file");
  6. }


To rzuca blad:
  1. Warning: unlink(030bf663571fcd7118c8c139fc1f1afd.csv) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in C:\VertrigoServ\www\szablon\mod.php on line 165
trueblue
Plik jest w tym samym katalogu co skrypt? W pierwszym poście podałeś zmienną $wynik["sciezka"], której nigdzie nie używasz.
nospor
Cytat
No such file or directory
Kurcze... przeciez wyraźnie napisali.... :/ Nie ma pliku. ALbo go nie masz faktycznie, albo jest w innym katalogu niz myslisz
viamarimar
plik jest w katalogu upload
skrypt jest katalog wyzej

nie korzystam ze sciezki poniewaz funkcja unlink korzysta z nazwy pliku a nie ze sciezki chyba?
johny_s
Cytat(viamarimar @ 20.11.2014, 19:05:12 ) *
nie korzystam ze sciezki poniewaz funkcja unlink korzysta z nazwy pliku a nie ze sciezki chyba?

jak byś się pofatygował i poczytał manuala

Kod
filename

    Path to the file.
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.