Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błędy PHP ale nie zawsze
Forum PHP.pl > Forum > Przedszkole
sasiadstar
Witam
Pisze bo jak zwykle nic z tego nie rozumiem.
Kod działa mozna przesyłać jeden lub kilka plików, problem pojawia się przy przesyłaniu paru plików ale właśnie nie rozumiem czemu tylko czasami.
Normalnie wszystko dziala sto razy a potem zonk i do puki nie prześle jednego pliku cały czas wywala błędy.
Jak prześle jeden plik skrypt się "odtyka" aby po jakimś czasie znowu zacząć szaleć.
z konsoli
  1. <br />
  2. <b>Warning</b>: mkdir(): Permission denied in <b>C:\xampp\htdocs\automat\upload.php</b> on line <b>30</b><br />
  3. <br />
  4. <b>Warning</b>: move_uploaded_file(uploads/dr14k0r9mol7h57fgjfo8egvk6/d931714a7af6c0a562c3701bf06fdf15): failed to open stream: Permission denied in <b>C:\xampp\htdocs\automat\upload.php</b> on line <b>35</b><br />
  5. <br />
  6. <b>Warning</b>: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php10CA.tmp' to 'uploads/dr14k0r9mol7h57fgjfo8egvk6/d931714a7af6c0a562c3701bf06fdf15' in <b>C:\xampp\htdocs\automat\upload.php</b> on line <b>35</b><br />
  7. <br />
  8. <b>Warning</b>: opendir(uploads/dr14k0r9mol7h57fgjfo8egvk6/,uploads/dr14k0r9mol7h57fgjfo8egvk6/): Odmowa dostpu. (code: 5) in <b>C:\xampp\htdocs\automat\upload.php</b> on line <b>91</b><br />
  9. <br />
  10. <b>Warning</b>: opendir(uploads/dr14k0r9mol7h57fgjfo8egvk6/): failed to open dir: No such file or directory in <b>C:\xampp\htdocs\automat\upload.php</b> on line <b>91</b><br />
  11. <br />
  12. <b>Warning</b>: readdir() expects parameter 1 to be resource, boolean given in <b>C:\xampp\htdocs\automat\upload.php</b> on line <b>92</b><br />
  13. <br />
  14. <b>Warning</b>: rmdir(uploads/dr14k0r9mol7h57fgjfo8egvk6/): Permission denied in <b>C:\xampp\htdocs\automat\upload.php</b> on line <b>97</b><br />
  15. {"status":"error"}

  1. <?php
  2. sleep(1);
  3. header("Content-Type: application/xml; charset=utf-8");
  4. $numer_sesji=session_id();
  5. $_SESSION['sesja']=$numer_sesji;
  6. $_SESSION['dane_zwrotne']="";
  7. $_SESSION['czas_wyswietlania']="";
  8. $_SESSION['typ_danych']="";
  9. $_SESSION['ilosc_blednych']=0;
  10. $token=hash('md5', str_replace('-','',(date("d-H-i-m-s"). rand())));
  11. $_SESSION['tablica']= array();
  12. $_SESSION['nazwa_kanalow']='';
  13. $GLOBALS['plik']="";
  14. // A list of permitted file extensions
  15. $allowed = array('txt','m3u');
  16. if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0){
  17.  
  18. $extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);
  19.  
  20. if(!in_array(strtolower($extension), $allowed)){
  21.  
  22. echo '{"status":"error","errorCode":"Niepoprawny typ pliku"}';
  23. }
  24. $dir= "uploads/$numer_sesji/";
  25. if (!file_exists($dir) || !is_dir($dir)) {
  26. mkdir($dir);
  27.  
  28. }
  29.  
  30.  
  31. if(move_uploaded_file($_FILES['upl']['tmp_name'], "$dir". $token)){
  32. $_SESSION['tablica']= $token;
  33.  
  34.  
  35. $return_array = array();
  36. $GLOBALS['plik']=$token;
  37. $tablica=array();
  38. $tablica=$token;
  39. if(is_dir($dir)){
  40.  
  41. if($dh = opendir($dir)){
  42. while(($file = readdir($dh)) != false){
  43.  
  44. if($file == "." or $file == ".."){
  45.  
  46.  
  47. } else {
  48. $return_array[] = $file; // Add the file to the array
  49.  
  50.  
  51. }
  52. }
  53.  
  54. $_SESSION['tablica_plikow']=$return_array;
  55.  
  56. include_once('dodaj_do_db.php');
  57. //var_dump($GLOBALS['plik']);
  58. //usleep(5000);
  59. utworz_liste();
  60.  
  61. $GLOBALS['plik']='';
  62.  
  63. }
  64.  
  65.  
  66. }
  67.  
  68. rename($dir . $token, 'TEMP/'. $token);
  69. sleep(1);
  70. usun_zawartosc($dir);
  71. $result=array();
  72. $result['status']='success';
  73. $result['dir_']=$return_array;
  74. $result['tablica']=$_SESSION['tablica'];
  75. echo json_encode($result);
  76. // echo '{"status":"success"}';
  77. }
  78. }
  79. usun_zawartosc($dir);
  80. echo '{"status":"error"}';
  81.  
  82. function usun_zawartosc($kat)//usuwanie wybraego katalogu
  83. {$katalog = opendir($kat);
  84. while($plik = readdir($katalog)) {
  85. if($plik != '.' AND $plik != '..') {
  86. unlink($kat.'/'.$plik);
  87. }
  88. };
  89. rmdir($kat);
  90. };
  91.  
  92. ?>
  93.  



bostaf
Tu jest namieszane:
Cytat
Warning: move_uploaded_file(uploads/dr14k0r9mol7h57fgjfo8egvk6/d931714a7af6c0a562c3701bf06fdf15): failed to open stream: Permission denied in C:\xampp\htdocs\automat\upload.php on line 35

Zobacz w tej linii 35 w jaki sposób konstruujesz ścieżkę do katalogu docelowego...
Pyton_000
Raczej "Permission denied" powie więcej niż linijka w kodzie...
sasiadstar
No jest namieszane wlasnie tu dr14k0r9mol7h57fgjfo8egvk6/d931714a7af6c0a562c3701bf06fdf15 bo lewa strona musi byc równa prawej tl katalog i plik maja sie tak samo nazywac a tu tak nie jest, ale zaczynam rozumieć o co chodzi.
Zanim plik się przetworzy przychodzi nastepne żądanie i zmienia nazwe temp i wychodzą glupoty jesli ak to trzeba by ustawić wysył synchroniczny - jedno kończy drugi zaczyna
Nie wiem czy dobrze myślę?
bostaf
Cytat(sasiadstar @ 13.05.2017, 23:15:56 ) *
Nie wiem czy dobrze myślę?

Nie do końca.
Plik ma zostać przeniesiony (move_uploaded_file) do katalogu, który wcześniej tworzysz (mkdir), ale katalog który wskazujesz jako cel pliku (uploads/dr14k0r9mol7h57fgjfo8egvk6/d931714a7af6c0a562c3701bf06fdf15) to nie ten sam który wcześniej utworzyłeś. Stąd błąd "permission denied", trochę mylny komunikat bo coś innego leży u podstaw. Ale tak jak napisałem - przyjrzyj się dokładnie co robisz a mkdir a co zaraz potem w move_uploaded_file. Tam jest błąd.
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.