Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Upload plików, Może ktoś mi pomóc znaleźć błąd ??
yaotzin
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


  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

Ten post edytował yaotzin 18.02.2007, 16:50:57
Go to the top of the page
+Quote Post
Ojebejbe
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 20.08.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
yaotzin
post
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Dzięki wielkie Ojebejbe

Ten post edytował yaotzin 18.02.2007, 17:58:06
Go to the top of the page
+Quote Post
Ociu
post
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Wyskakują jakieś błędy ?
Go to the top of the page
+Quote Post
boddah85
post
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 4
Dołączył: 31.07.2006

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdrawiam

Ten post edytował boddah85 18.07.2007, 08:41:42
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #6





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) czy tam jak juz bedziesz laskawy nawet dal koda (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) chodz to nie musi byc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) moze linki pomoga pozdro

Ten post edytował FliSs_tCv 18.07.2007, 08:25:44
Go to the top of the page
+Quote Post
boddah85
post
Post #7





Grupa: Zarejestrowani
Postów: 72
Pomógł: 4
Dołączył: 31.07.2006

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #8





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


A jakis bład Ci wyskakuje?? napisz konkretnie co sie dzieje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wtedy bedziemy mogli jakos pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował FliSs_tCv 18.07.2007, 14:16:37
Go to the top of the page
+Quote Post
boddah85
post
Post #9





Grupa: Zarejestrowani
Postów: 72
Pomógł: 4
Dołączył: 31.07.2006

Ostrzeżenie: (0%)
-----


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.

Ten post edytował boddah85 18.07.2007, 14:38:06
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #10





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Looknij czy teraz bedzie dzialac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wg powiedz co sie stanie jak to zastosujesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdr mogłem sie gdzies pomylic (IMG:http://forum.php.pl/style_emoticons/default/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. ?>


Ten post edytował FliSs_tCv 18.07.2007, 16:31:41
Go to the top of the page
+Quote Post
boddah85
post
Post #11





Grupa: Zarejestrowani
Postów: 72
Pomógł: 4
Dołączył: 31.07.2006

Ostrzeżenie: (0%)
-----


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 ? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.09.2025 - 07:22