ďťż

[php] Uploadowanie plików

       

Podstrony


telcocafe

mam oto taki plik index.php
<?PHP function addfoto($what, $album) { if(is_uploaded_file($what['userfile']['tmp_name'])) { if(move_uploaded_file($what['userfile']['tmp_name'], './albums/'.$album.'/'.$what['userfile']['name' ])) return 0; else return 600; } else return 601; } if($_GET['mode'] == 'yes') { echo(addfoto($_FILES, 'asdf')); } else { echo('Nie wybrano pliku.'); } ?> <form enctype="multipart/form-data" action="index.php?mode=yes" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> Plik do wysłania: <input name="userfile" type="file" /> <input type="submit" value="Wyślij" /> </form>
i ciągle funkcja zwraca mi 601 :/ ... pojęcia nie mam dlaczego ... czyżbym źle przesyłał do funkcji tablice $_FILES ? ... pewnie rozwiązanie problemu jest banalne ale ja nie wiem czemu to nie działa :/. Pomóżcie.




czyżbym źle przesyłał do funkcji tablice $_FILES
podejrzewam, że po przepisaniu tablicy superglobalnej $_FILES do Twojej funkcji, zatraca ona swoje "magiczne" zdolności.
Dlatego może spróbuj tak:
<?php if($_GET['mode'] == 'yes') { if(is_uploaded_file($_FILES['userfile']['tmp_name'])) { if(move_uploaded_file($_FILES['userfile']['tmp_name'], './albums/'.$album.'/'.$_FILES['userfile']['name' ])) echo 'OK'; else echo 'Błąd'; } else echo 'Błąd'; } else { echo('Nie wybrano pliku.'); } ?> <form enctype="multipart/form-data" action="index.php?mode=yes" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> Plik do wysłania: <input name="userfile" type="file" /> <input type="submit" value="Wyślij" /> </form>
Użytkownik kutar edytował ten post 01 sierpień 2007, 22:41
tak to ja umiem ... cały bajer w tym żeby funkcją to zrobić :P ...

hmmmm... dziwne, bo sprawdziłem u siebie i kod jak najbardziej działa prawidłowo... plik się zapisuje, funkcja zwraca 0 (na PHP5)



funkcja move_uploaded_file powinna dostać dwa stringi. Sproboj te dwa wyrazenia co tam masz, wziac w " " , mialem ten sam problem i to rozwiązanie poskutkowało :)
Pozdro!
Użytkownik kowalski.jasio edytował ten post 01 sierpień 2007, 23:40

funkcja move_uploaded_file powinna dostać dwa stringi
Problem jest w tym że zmienna $what['userfile']['tmp_name'] jest pusta. Tablica jest przesyłana prawidłowo, natomiast $_FILES['userfile']['error'] ma wartość 2, czyli problem nie ze skryptem a z parserem PHP. Co to jest za błąd ?! Pierwszy raz się z nim spotkałem.

A do manuala to się nie chce zajrzeć? Błąd polega na tym,że wysyłasz zbyt duży plik :D Ot cały problem . . . <_<

no ale to się ustawia w php.ini i mam ustawione na 2 M a plik ma 170 KB :P ... więc to jednak nie o to chodzi.

O to,o to tylko kod błędu drugiego odnosi się do maksymalnej wielkości pliku określonej w formularzu. Jest to pole MAX_FILE_SIZE :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.