Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]upload pliku
Forum PHP.pl > Forum > Przedszkole
GoOx
Witam,

mam pewien problem.

jak tu oto taki kodzik:

  1. <form action="index.php?upload" method="POST" ENCTYPE="multipart/form-data">
  2. <input type="file" name="userfile"/><br/>
  3. <input type="submit" name=zapisz value="Zapisz"/>
  4.  
  5. </form>
  6. <?
  7. if(isset($_POST['zapisz'])) {
  8. $max_rozmiar = 100*1024;
  9. $i = 0;
  10. $rozmiar = $_FILES['userfile']['size'];
  11. $typ = $_FILES['userfile']['type'];
  12. $nazwa = $_FILES['userfile']['name'];
  13. $nazwa_tmp = $_FILES['userfile']['tmp_name'];
  14.  
  15. if(is_uploaded_file($nazwa_tmp)) {
  16.  
  17. if($rozmiar > $max_rozmiar) {
  18. echo 'Obraz jest za duży!';
  19. $i++;
  20. }
  21. if($typ != 'image/png') {
  22. echo "Plik nie jest plikiem png";
  23. $i++;
  24. }
  25. if($i == '0') {
  26. move_uploaded_file($nazwa_tmp, $_SERVER['DOCUMENT_ROOT'].'/images/'.$nazwa);
  27. echo "Plik został załadowany";
  28. }
  29. }
  30. }
  31. ?>


wszystko działa super prócz jednego, wgranie pliku na server po wrzuceniu klikam zapisz a następnie pokazuje mi się plik został załadowany,
po czym go na serverze nie ma.

teraz końcówkę zmieniłem na taką:
  1. if($i == '0') {
  2. $loc = "/images";
  3. move_uploaded_file($nazwa_tmp, "$loc/$nazwa");
  4. echo "Plik został załadowany";
  5. echo "<a href=upload/images/$nazwa >klik</a>";
  6. }


tak jak w manualu było. chamody są 777

i mam takie błędy:


Warning: move_uploaded_file(/images/avatar.png) [function.move-uploaded-file]: failed to open stream: No such file or directory in /virtual/w/i/wirtualny-robot.ugu.pl/upload/index.php on line 27

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/virtual/tmp/phpfmsBMz' to '/images/avatar.png' in /virtual/w/i/wirtualny-robot.ugu.pl/upload/index.php on line 27
jaslanin
W drugim przypadku nie masz dostępu do lokalizacji /images czyli do podfoldera katalogu głównego systemu linux (użyłeś adresacji absolutnej), zmień to na $loc = "images";

Odnośnie Pierwszego przypadku to też działa tylko też źle ustawiłeś ścieżkę:

  1. move_uploaded_file($nazwa_tmp, $_SERVER['DOCUMENT_ROOT'].'/images/'.$nazwa);


prawdopodobnie chcesz by folder był wgrywany do folderu domena.pl/upload/images/asd.png (domyślam się po kodzie echo "<a href=upload/images/$nazwa >klik</a>";)

ale ścieżkę $_SERVER['DOCUMENT_ROOT'].'/images/'.$nazwa

Ustawiłeś na folder odpowiadający URL:

domena.pl/images/asd.png

$_SERVER['DOCUMENT_ROOT'] zwykle odwołuje do głównego folderu domeny
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.