Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Usuwanie pliku oraz uprawnienia
kkuubbaa88
post
Post #1





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


witam

na swojej aplikacji tworze folder:
  1. if (!is_dir('pliki/folder')){
  2. mkdir ('pliki/folder', 0777);
  3. }

do niego uploadowane są pliki jpg oraz wstepnie obrabiane:
  1. if(move_uploaded_file($_FILES['plik']['tmp_name'],'pliki/folder/plik.jpg')){
  2. przeskaluj();
  3. obrob():
  4. }

następnie chcę usunąć plik z folderu zwykłą funkcją unlink:
  1. unlink('pliki/folder/plik.jpg');

niestety w logach mam problem:

Permission denied

co jest trochę dziwne... dlaczego tak się dzieje ? jak to naprawić ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Być może plik, który chcesz usunąć nie posiada odpowiednich uprawnień do tej operacji. Sprawdź jakie ma uprawnienia ten plik.

A jaki błąd pokazuje PHP jak próbujesz usunąć ten plik?


--------------------
Go to the top of the page
+Quote Post
user767
post
Post #3





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


może file_exists($nazwa)?
Go to the top of the page
+Quote Post
kkuubbaa88
post
Post #4





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


nadałem po uploadzie zdjęciu prawa 777, ale to i tak nie pomogło w logach i w php jest to samo. w którym pliku i lini się czepia oraz 'Permission denied'
Go to the top of the page
+Quote Post
strife
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(user767 @ 5.12.2010, 14:51:50 ) *
może file_exists($nazwa)?

file_exists sprawdza czy plik / katalog istnieje w danej lokalizacji, co to ma niby wspólnego z brakiem uprawnień do usunięcia pliku? Ja rozumiem, że chciałeś pomóc i masz dobre intencje, ale następnym razem wstrzymaj się z odpowiedzią jak nie masz co do niej pewności.

Cytat
nadałem po uploadzie zdjęciu prawa 777, ale to i tak nie pomogło w logach i w php jest to samo. w którym pliku i lini się czepia oraz 'Permission denied'

No tak, ale wklej dokładnie błąd jaki Ci zwraca parser przy próbie usunięcia pliku. O to mi konkretnie chodzi.


--------------------
Go to the top of the page
+Quote Post
kkuubbaa88
post
Post #6





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


dokładnie błąd wygląda tak:

Warning: unlink(../pliki/folder/unlink.jpg) [function.unlink]: Permission denied in C:\wamp\www\var\www\strona\upload\do_2.php on line 178

czyli nic ciekawego nie daje...

co dziwne można robić upload kilku plików i za którymś razem dopiero wyskoczy takowy błąd...

po wykluczaniu przyczyn metodą prób i błędów doszedłem do tego, że funkcja unlink działa za każdym razem gdy nie będę przetwarzał wysłanego obrazka. teraz tylko pozostaje pytanie co takiego robią moje funkcje, że ów plik nie chce się później usunąć.

gdy używam ich pojedynczo to wszystko działa bez problemów. jeżeli wywołam jedną po drugiej przesłany obrazek nie będzie mógł się usunąć.

  1. function zrob_miniaturke($plik, $nowa_sz, $nowa_w, $miniaturka){
  2. $info = @getimagesize($plik);
  3. $wytnij = false;
  4. switch ($info['mime'])
  5. {
  6. case "image/gif":
  7. $plik = imagecreatefromgif($plik);
  8. break;
  9. case "image/jpeg":
  10. $plik = imagecreatefromjpeg($plik);
  11. break;
  12. case "image/png":
  13. $plik = imagecreatefrompng($plik);
  14. break;
  15. }
  16.  
  17. $plik_sz = imageSX($plik);
  18. $plik_w = imageSY($plik);
  19.  
  20. if ($plik_sz > $plik_w)
  21. {
  22. if (($plik_w/$plik_sz) == '0.75'){
  23. $miniaturka_sz=$nowa_sz;
  24. $miniaturka_w=$nowa_w;
  25. }else{
  26. $miniaturka_sz=$nowa_w*($plik_sz/$plik_w);
  27. $miniaturka_w=$nowa_w;
  28. $wytnij = true;
  29. }
  30. }
  31.  
  32. if ($plik_sz < $plik_w)
  33. {
  34. $miniaturka_sz=$nowa_sz;
  35. $miniaturka_w=$nowa_sz*($plik_w/$plik_sz);
  36. $wytnij = true;
  37. }
  38.  
  39. if ($plik_sz == $plik_w)
  40. {
  41. $miniaturka_sz=$nowa_sz;
  42. $miniaturka_w=$nowa_sz;
  43. $wytnij = true;
  44. }
  45.  
  46. $nowy_plik = ImageCreateTrueColor($nowa_sz, $nowa_w);
  47. if($wytnij){
  48. if ($miniaturka_sz > $nowa_sz){
  49. $zmienna = round((($miniaturka_sz-$nowa_sz)/2)*($plik_sz/$miniaturka_sz));
  50. $zmienna2 = $plik_sz-$zmienna*2;
  51. @imagecopyresampled($nowy_plik, $plik, 0, 0, $zmienna, 0, $nowa_sz, $nowa_w, $zmienna2, $plik_w);
  52. }elseif($miniaturka_w > $nowa_w){
  53. $zmienna = round((($miniaturka_w-$nowa_w)/2)*($plik_w/$miniaturka_w));
  54. $zmienna2 = $plik_w-$zmienna*2;
  55. @imagecopyresampled($nowy_plik, $plik, 0, 0, 0, $zmienna, $nowa_sz, $nowa_w, $plik_sz, $zmienna2);
  56. }
  57. }else{
  58. $zmienna = round((($miniaturka_w-$nowa_w)/2)*($plik_w/$miniaturka_w));
  59. $zmienna2 = $plik_w-$zmienna*2;
  60. @imagecopyresampled($nowy_plik, $plik, 0, 0, 0, $zmienna, $nowa_sz, $nowa_w, $plik_sz, $zmienna2);
  61. }
  62. @imagejpeg($nowy_plik, $miniaturka, '90');
  63. @imagedestroy($plik);
  64. @imagedestroy($nowy_plik);
  65. return TRUE;
  66. }
  67.  
  68.  
  69.  
  70. function przeskaluj_zdjecie($plik, $nowa_sz, $nowa_w, $plik_2){
  71. $info = @getimagesize($plik);
  72. switch ($info['mime'])
  73. {
  74. case "image/gif":
  75. $plik = imagecreatefromgif($plik);
  76. break;
  77. case "image/jpeg":
  78. $plik = imagecreatefromjpeg($plik);
  79. break;
  80. case "image/png":
  81. $plik = imagecreatefrompng($plik);
  82. break;
  83. }
  84.  
  85. $plik_sz = imageSX($plik);
  86. $plik_w = imageSY($plik);
  87.  
  88. if ($plik_sz > $plik_w)
  89. {
  90. if ($plik_sz > $nowa_sz){
  91. $plik_2_sz = $nowa_sz;
  92. $plik_2_w = $nowa_sz*($plik_w/$plik_sz);
  93. }else{
  94. $plik_2_sz = $plik_sz;
  95. $plik_2_w = $plik_w;
  96. }
  97. }
  98.  
  99. if ($plik_sz < $plik_w)
  100. {
  101. if ($plik_sz > $nowa_sz){
  102. $plik_2_sz = $nowa_sz;
  103. $plik_2_w = $nowa_sz*($plik_sz/$plik_w);
  104. }else{
  105. $plik_2_sz = $plik_sz;
  106. $plik_2_w = $plik_w;
  107. }
  108.  
  109. if ($plik_w > $nowa_w){
  110. $plik_2_sz = $nowa_w*($plik_sz/$plik_w);
  111. $plik_2_w = $nowa_w;
  112. }
  113. }
  114.  
  115. if ($plik_sz == $plik_w)
  116. {
  117. $plik_2_sz=$nowa_w;
  118. $plik_2_w=$nowa_w;
  119. }
  120.  
  121. $nowy_plik = ImageCreateTrueColor($plik_2_sz, $plik_2_w);
  122.  
  123. @imagecopyresampled($nowy_plik, $plik, 0, 0, 0, 0, $plik_2_sz, $plik_2_w, $plik_sz, $plik_w);
  124.  
  125. @imagejpeg($nowy_plik, $plik_2, '90');
  126. @imagedestroy($plik);
  127. @imagedestroy($nowy_plik);
  128. return TRUE;
  129. }
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 09:47