Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Upload plików
Forum PHP.pl > Forum > Przedszkole
yaotzin
  1. <?php
  2. $uploaddir = "img/";
  3. $filename = trim($_FILES['upfile']['name']);
  4. $filename = substr($filename, -20);
  5. $filename = ereg_replace(" ", "", $filename);
  6. if((ereg(".gif", $filename)) || (ereg(".jpg", $filename))) {
  7. $uploadfile = $uploaddir.$filename;
  8. /*if (!is_uploaded_file($_FILES['upfile']['tmp_name'])) 
  9. die ('Nie wgrano żadnego pliku');*/
  10. if(move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile)){
  11. chmod($uploadfile, 0644);
  12. print("Plik został pomyślnie załadowany");
  13. }else{
  14. print("Przekazanie pliku nie powiodło się");
  15. }
  16. }else{
  17. print("Dozwolone są jedynie obrazki przekazanie pliku nie powiodło się");
  18. }
  19. ?>


formularz do tego
.
.
.

  1. <form enctype="multipart/form-data" action="load.php" method="POST">
  2. <p>
  3. <input type="hidden" name="MAX_FILE_SIZE" value="50000">
  4. </p>
  5. <p>
  6. Wybierz plik: <input name="upfile" type="file">
  7. </p>
  8. <p>
  9. <input type="submit" value="Wyślij">
  10. </p>
  11. </form>
  12. .
  13. .
  14. .


Może ktoś mi pomóc znaleźć błąd w tym kodzie, nie działa mi kompletnie ten upload. dochodzi do momentu move_uploaded... i koniec :/

Nie działa mi to ani na krasnalu ani na serwerze mimo iż PHP.ini ma odpowiednie opcje włączone
Ojebejbe
A moze w formularzu zamiast:

  1. <input name="upfile" type="file">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="50000">


  1. <input name="upfile" id="upfile" type="file">
  2. <input type="hidden" name="MAX_FILE_SIZE" id="MAX_FILE_SIZE" value="50000">


Roznie to bywa z przegladarkami.

Go O!

----------------------
Poprawiam BBcode, miałeś literówkę.
---
~strife
yaotzin
Niestety to też nie to :/ Dzięki za próbę pomocy :]

Ale i tak bardzo mi pomogłeś :]

  1. <input type="hidden" name="MAX_FILE_SIZE" value="50000">


ta linia określa wielkośc wrzucanego pliku jest to 50 kB ja wrzucałem ponad to i dlatego nie działało... głupek ze mnie biggrin.gif

Dzięki wielkie Ojebejbe
Ociu
Wyskakują jakieś błędy ?
boddah85
Jako że mój problem tyczy się podobnej kwestii podępnę się pod ten temat.
Mam taki oto formularz...
  1. <form action="administracja.php" method="post" enctype="multipart/form-data">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
  3. <p>Nazwa <input type="text" name="image_name" size="20" mexlength="255"></p>
  4. <p>Załaduj obrazek <input name="plik" type="file"></p>
  5. <p><input type="submit" name="obrazek" value="Dodaj"></p>
  6. </form>


No i skrypt, ktory z założenia powinien zapisać do bazy kilka rzeczy oraz wgrać ów plik do określonego folderu(chmody przestawilem na 777)
  1. <?php
  2. $max_rozmiar = 100*100;
  3. if (is_uploaded_file($_FILES['plik']['tmp_name'])) 
  4. {
  5. if ($_FILES['plik']['size'] > $max_rozmiar) 
  6. {
  7. echo 'Bł&plusmn;d! Plik jest za duży!';
  8. } 
  9. else 
  10. {
  11. if ($_FILES['plik']['type']=="image/jpeg" || $_FILES['plik']['type']=="image/gif")
  12. {
  13. $image_name = $_POST['image_name'];
  14. $image_name = trim($image_name);
  15. $image_name = strip_tags($image_name);
  16. $zap = "SELECT MAX(image_id) as max_id from images";
  17. $wyn= mysql_query($zap) or die(mysql_error());
  18. $tab_image = mysql_fetch_array($wyn);
  19. $max_id = $tab_image['max_id'];
  20. $max_id = $max_id + 1;
  21.  
  22. $uploadfile = $_SERVER['DOCUMENT_ROOT'].'/obrazki/'.$max_id.$_FILES['plik']['name'];
  23. move_uploaded_file($_FILES['plik']['tmp_name'],$uploadfile);
  24. chmod($uploadfile, 0644);
  25. echo $uploadfile;
  26. if(move_uploaded_file($_FILES['plik']['tmp_name'],$uploadfile))
  27. {
  28. $zap_plik = "INSERT into images VALUES('', '".$image_name."', '".$max_id.$_FILES['plik']['name']."')";
  29. $wys_plik = mysql_query($zap_plik) or die(mysql_error());
  30. echo 'Wyslano plik. Nowa nazwa to ';
  31. echo $uploadfile;
  32. }
  33. else {echo '<br />Nie wyslano! ';
  34. echo $_FILES['plik']['error'];}
  35. }
  36. else{ echo 'Nie mozna wyslac innych plikow niz jpeg i gif';}
  37. }
  38.  
  39. } 
  40. else {
  41. echo 'Bł&plusmn;d przy przesyłaniu danych!';
  42. }
  43. ?>

$_FILES['plik']['error'] zwraca 0, ale plik sie nie wysyla.
Będę wdzięczny za wszelaką pomoc smile.gif

pozdrawiam
FliSs_tCv
Witam jedyne co moghe pomoc to podac Tobie 2 linki które wczoraj znalazłem przeszukując odpowiedzi na pytanie jak wysłac zdjcie ie na server do katalogu np zdjecia a sciezke zapisac do bazy danych i nie znalazłem dokladnie tego czego szukałem ale zawsze jakas podpowiedz tongue.gif

http://forum.php.pl/index.php?showtopic=68432&hl=
http://forum.php.pl/index.php?showtopic=69286&hl=

Jak juz bys do czegos doszedł to poprosilbym Cie abys mi tam cos powiedzial jak sie to robi albo nawet jakiegos tutka swojego zrobil tongue.gif czy tam jak juz bedziesz laskawy nawet dal koda tongue.gif chodz to nie musi byc smile.gif tongue.gif moze linki pomoga pozdro
boddah85
No niestety ale niewiele tamte linki pomogly. Moze to wina serwera na ktorym pracuje (konta mam u benerta) bo na webservie raczej nie mialem klopotow. Utkwilem jednak w martwym punkcie i probowalem wielu rzeczy i nie wiem gdzie twki problem. Teraz moge sie zdac tylko na łaskę tutejszych specow winksmiley.jpg
FliSs_tCv
A jakis bład Ci wyskakuje?? napisz konkretnie co sie dzieje smile.gif wtedy bedziemy mogli jakos pomoc smile.gif
boddah85
Dzialanie skryptu konczy sie na...
  1. <?php
  2. else 
  3. {
  4. echo '<br />Nie wyslano! ';  
  5. echo $_FILES['plik']['error'];
  6. }
  7. ?>


Jak juz wczesniej napisalem $_FILES['plik']['error'] zwraca 0.
Zadnych bledow mowiacych np o nieistniejacej sciezce itp nie ma.
FliSs_tCv
Looknij czy teraz bedzie dzialac smile.gif wg powiedz co sie stanie jak to zastosujesz smile.gif pozdr mogłem sie gdzies pomylic smile.gif

  1. <?php
  2. $max_rozmiar = 100*100;
  3. if (is_uploaded_file($_FILES['plik']['tmp_name'])) 
  4. {
  5. if ($_FILES['plik']['size'] > $max_rozmiar) 
  6. {
  7. echo "Błąd! Plik jest za duży!";
  8. } 
  9. else 
  10. {
  11. if ($_FILES['plik']['type']=="image/jpeg" || $_FILES['plik']['type']=="image/gif")
  12. {
  13. $image_name = $_POST['image_name'];
  14. $image_name = trim($image_name);
  15. $image_name = strip_tags($image_name);
  16. $zap = "SELECT MAX(image_id) as max_id from images";
  17. $wyn= mysql_query($zap) or die(mysql_error());
  18. $tab_image = mysql_fetch_array($wyn);
  19. $max_id = $tab_image['max_id'];
  20. $max_id = $max_id + 1;
  21.  
  22. $uploadfile = $_SERVER['DOCUMENT_ROOT'].'/obrazki/'.$max_id.$_FILES['plik']['name'];
  23. move_uploaded_file($_FILES['plik']['tmp_name'],$uploadfile);
  24. chmod($uploadfile, 0644);
  25. echo $uploadfile;
  26. if(move_uploaded_file($_FILES['plik']['tmp_name'],$uploadfile))
  27. {
  28. $zap_plik = "INSERT into images VALUES('', '.$image_name.', '.$max_id.$_FILES['plik']['name'].')";
  29. $wys_plik = mysql_query($zap_plik) or die(mysql_error());
  30. echo 'Wyslano plik. Nowa nazwa to ';
  31. echo $uploadfile;
  32.  
  33.  } else {
  34. echo "<br />Nie wyslano! ";
  35. echo $_FILES['plik']['error'];
  36.  }
  37.  
  38.  }else{ 
  39.  echo "Nie mozna wyslac innych plikow niz jpeg i gif";
  40.  }
  41. }
  42.  
  43. }else {
  44.  echo "Błąd przy przesyłaniu danych!";
  45. }
  46. ?>
boddah85
Sorry za zamieszanie. Pliki zostaly wgrywane na serwer ale odpowiednie rekordy nie wpisywaly sie do bazy. Wyrzucilem wiec...

if(move_uploaded_file($_FILES['plik']['tmp_name'],$uploadfile))

i wszystko gra. Pytanie tylko czemu ten if zwracal false ? winksmiley.jpg
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.