Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]upload plików - błąd
Forum PHP.pl > Forum > Przedszkole
kubislaw
Witam,

Wiem, że temat jest wałkowany latami, ale mój przypadek nie pasuje do odpowiedzi, jakie znalazłem w necie. Na początek:
1. php.ini - serwer pozwala na upload plików, folder tmp istnieje
2. identyczną procedurę zastosowałem w innym pliku php i tam działa
3. niemożność uploadu nie zależy od typu pliku (pliki, których nie mogłem uploadować z poniższego kodu, uploadowały się z innych plikó php)
4. próbowałem z małymi plikami - do 100KB

Problem polega na tym, że nie mam pojęcia, dlaczego ten kod nie chce uploadować plików. Dostaję cały czas echo "Brak pliku" (linie 38-46). Próbowałem też zmienić treść, która ma się wykonać po warunku, ale jest to samo, co znaczy, że sam warunek nie jest spełniony (plik nie wchodzi do tmp).

Bardzo proszę o pomoc, siedzę nad manualami już 2 dni.

  1. if($o == 1)
  2. {
  3.  
  4. $f = $_FILES['plik_upload']['tmp_name'];
  5. $nazwa=$_POST['nazwa'];
  6. $title=$_POST['nazwa'];
  7. $opis=$_POST['opis'];
  8. $kategoria = $_POST['kat'];
  9. $zalacznik = is_uploaded_file($f) ? 1 : 0;
  10.  
  11. if(!empty($nazwa) && !empty($kategoria) && $kategoria != 'nie') //zapisujemy do bazy
  12. {
  13.  
  14. mysql_query('SET AUTOCOMMIT=0');
  15. mysql_query('Lock table '.$prefix.'_galeria_kat write;');
  16. mysql_query('start transaction;');
  17.  
  18. $kolejnosc = ostatnipro($prefix.'_galeria_kat', 3, $kategoria) + 1; // !!!!!!!!
  19.  
  20. $pytanie = "insert into ".$prefix."_galeria_kat
  21. (IdP, Nazwa, Title, Opis, Zalacznik, Aktywne, Kategoria, Kolejnosc)
  22. values
  23. (3, '".$nazwa."', '".$title."', '".$opis."', '".$zalacznik."', '0', '".$kategoria."', '".$kolejnosc."')";
  24. $wynik = mysql_query($pytanie);
  25.  
  26. //teraz bierzemy id projektu
  27. $ids = mysql_result(mysql_query('SELECT Id FROM '.$prefix.'_galeria_kat ORDER BY Id DESC Limit 1'), 0);
  28.  
  29.  
  30. mkdir("../modules/projekty/".$kategoria."/".$ids."", '0777');
  31.  
  32. $wynik ? komunikat(11,'pl') : komunikat(55,'pl');
  33.  
  34. mysql_query('commit;');
  35. mysql_query('unlock tables;');
  36. mysql_query('SET AUTOCOMMIT=1');
  37.  
  38. {
  39. move_uploaded_file($f, '../modules/projekty/'.$kategoria.'/'.$ids.'/'.$kategoria.'-'.$ids.'.pdf');
  40. }
  41.  
  42. else
  43. {
  44. echo 'Brak pliku';
  45. }
  46.  
  47. }
  48. else
  49. {
  50. komunikat(10,'pl');
  51. }
  52.  
  53. echo "\n" . '<h2>Dodawanie nowego projektu</h2>';
  54. echo "\n" . '<form method="post" action="index.php?id=3&o=1" name="strona">';
  55. echo "\n" . '<table>';
  56.  
  57. echo "\n" . '<tr><td colspan="2" class="head">Dodaj nowy projekt</td></tr>';
  58.  
  59.  
  60. echo "\n" . '<tr><td><b>Nazwa projektu</b>:  </td><td><input type="text" name="nazwa" size="50" /></td></tr>';
  61. echo "\n" . '<tr><td><b>Opis projektu</b>:  </td><td><input type="text" name="opis" size="100" /></td></tr>';
  62.  
  63.  
  64. echo "\n" . '<tr><td><b>Kategoria</b>:  </td><td>';
  65.  
  66. echo "\n" . '<select name="kat">';
  67. echo "\n" . '<option value="nie">-- brak --</option>';
  68. echo "\n" . '<option value="pryw">wnętrza prywatne</option>';
  69. echo "\n" . '<option value="publ">wnętrza publiczne</option>';
  70. echo "\n" . '<option value="aran">aranżacje</option>';
  71. echo "\n" . '</select></td></tr>';
  72. echo "\n" . '<tr><td>';
  73. echo "\n" . '<b>Załącznik (tylko pdf)</b>:  </td><td><input type="file" name="plik_upload" />';
  74. echo "\n" . '</td></tr>';
  75.  
  76.  
  77. echo "\n" . '<tr><td colspan="2" align="right"><input type="submit" name="go" value=" dodaj projekt " /></td></tr>';
  78.  
  79. echo "\n" . '</table>';
  80. echo "\n" . '</form>';
  81.  
  82.  
  83. }


PS. Dane zapisują się do bazy. Nie działa tylko upload.
CuteOne
  1.  
  2. if($o == 1)
  3. {
  4. echo '<pre>';
  5. print_r($_FILES['plik_upload']);
  6. echo '</pre>';
  7.  


sprawdź czy plik został uploadowany
kubislaw
Nic nie drukuje. Mam <pre></pre>.




17:56

Problem rozwiązany: brakowało deklaracji danych w formularzu: enctype="multipart/form-data".

<form enctype="multipart/form-data" method="post" action="index.php?id=3&o=1"> rozwiązało zagadkę.
melkorm
Bo nie masz w form odpowiedniego nagłówka do wysyłania plików
multipart/form-data
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.