Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Błąd w klasie upload?
Forum PHP.pl > Forum > Przedszkole
Yhy
Mam następujący problem, po wywołaniu uploadu pliku w klasie, brak jakiekolwiek reakcji.

Klasa

  1. <?php
  2.  
  3. class Avatar{
  4.  
  5. public $file;
  6. private $file_size;
  7. private $file_tmp;
  8. private $file_name;
  9.  
  10. public function __set($file, $file_size){
  11. if( $_FILES['avatar']['size'] < 20000){
  12. $this->file_size = $_FILES['avatar']['size'];
  13. return $this->file_size;
  14. }
  15. else{
  16. echo 'Podany plik jest zbyt duży.';
  17. }
  18. }
  19.  
  20. public function upload($file){
  21.  
  22. $this->file = $file;
  23.  
  24. $this->file_tmp = $_FILES['avatar']['tmp_name'];
  25.  
  26. $this->file_name = $_FILES['avatar']['name'];
  27.  
  28. if( move_uploaded_file($this->file_tmp, "avatars/$this->file_name")){
  29. echo 'Plik został zauploadowany.';
  30. }
  31.  
  32.  
  33. }
  34.  
  35. }
  36.  
  37. ?>


Wywołuję to w następujący sposób

  1. include('class.Avatar.php');
  2.  
  3. $avatar = new Avatar;
  4.  
  5. echo '<form action="#" method="POST" enctype="multipart/form-data">
  6. Wybierz:<input type="file" name="avatar"><input type="submit" name="submit" value="Wgraj">
  7. </form>';
  8.  
  9. if( isset($_POST['avatar'])){
  10. $avatar->upload($_FILES['avatar']);
  11. }


Pytanie, gdzie popełniłem błąd?
nospor
Po pierwsze:
print_r($_POST);
a dowiesz się czemu Twoj warunek nie działa.

Po drugie: zapoznaj się z podstawami uploudu, opisanymi w manualu.
Yhy
Zaglądałem, jednak zupełnie nie wiem gdzie leży błąd, a tablica nic ciekawego nie wyrzuca, chociaż wygląda na to że w ogóle nie odbiera danych z formularza.
nospor
pola typu FILE nie idą w $_POST tylko w $_FILES.
Dlatego prosiłem, byś się zapoznał z podstawami.

print_r($_POST); miał ci pokazać, że pole FILE nie idzie postem. Za to postem poszedł SUBMIT
Yhy
No tak, ale jak widać plik odbieram za pomocą $_FILES, a nie $_POST. Nadal brak reakcji.
dwwa
  1. <form action="" method="POST" enctype="multipart/form-data">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
  3. Wybierz:<input type="file" name="avatar"><input type="submit" name="submit" value="Wgraj">
  4. </form>
nospor
Tak, widzę, jak odbierasz, ale zanim odbierzesz to masz:
if( isset($_POST['avatar'])){
i ci w ogole do tego warunku nie wchodzi.
Yhy
Cytat(dwwa @ 10.10.2011, 13:44:54 ) *
  1. <form action="" method="POST" enctype="multipart/form-data">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
  3. Wybierz:<input type="file" name="avatar"><input type="submit" name="submit" value="Wgraj">
  4. </form>


? po co kopiujesz mi jakieś słabe skrypty z sieci?


Cytat(nospor @ 10.10.2011, 13:48:13 ) *
.....rety.... tak, widzę, jak odbierasz, ale zanim odbierzesz to masz:
if( isset($_POST['avatar'])){
i ci w ogole do tego warunku nie wchodzi.


Poprawiłem już przy przedostatnim poście na $_FILES['avatar'], ale to nic nie zmienia.


Znalazłem błąd, dziękuję za pomoc.
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.