Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
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


--------------------
Bartek 'Ojebejbe' Mackiewicz
GG#853388 | skype: b.mackiewicz
@: bartosz.mackiewicz@hot.pl

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 biggrin.gif

Dzięki wielkie Ojebejbe

Ten post edytował yaotzin 18.02.2007, 17:58:06


--------------------
------
Per Aspera Ad Astra
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 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 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

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 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 smile.gif wtedy bedziemy mogli jakos pomoc 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 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. ?>


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 ? winksmiley.jpg
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 06:25