Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Upload obrazków i miniatur pod inną nazwą
Forum PHP.pl > Forum > Przedszkole
alberto
mam taki problem - znalazlem gotowy skrypcik do uploadu obrazków i tworzenia miniatur ale jestem troche zielony jeszcze w tych sprawach a potrzebuje dorobić do niego pare rzeczy :

1. jako ze plik to tylko jeden z wielu elementów formularza to jesli ktos nie wybierze zadnego pliku to poprosu skrypt sie nie bedzie wykonywal (bo aktualnie wyskakuje blad division by zero)

2. potrzebuje zmieniac nazwy pliku (obrazka) upload'owanego na jakas generowana (np. oryginalna nazwa pliku + jakas liczba generowana z zakresu 1000-9999) i ladowac ja do bazy w pole 'img'.

a to jest ten skrypt:

  1. <?php
  2. $opis=strip_tags($uwagi);
  3. $uploaddir = 'obrazki/';
  4. $parametry = getimagesize ($file2);
  5. $sp = explode(".",$plik); 
  6. $sec=date("s");
  7.  
  8.  
  9. if ($parametry[0] >=|| $parametry[1] >= 1) {
  10.  
  11.  
  12. if ($parametry[0] > 1024 || $parametry[1] > 768) {
  13. echo 'Obrazek za duży!<br>';
  14. echo '<a href="javascript:history.back();">Wstecz</a>' ;
  15. }
  16.  
  17. if(move_uploaded_file($file2, $uploaddir.$file)) {
  18. chmod($uploaddir.$file, 0644);
  19. echo 'Plik został załadowany poprawnie <br><br>';
  20. echo '<img src="obrazki/'.$file.'"> <br><br>';
  21. }
  22. else {
  23. echo 'Bł&plusmn;d podczas uploadowania obrazka.'; 
  24. } 
  25.  
  26.  
  27. $imagefile=$file; //przykładowo
  28. $info=getimagesize("obrazki/".$imagefile);
  29. $width=$info[0];
  30. $height=$info[1];
  31. echo("$width - szer, $height - wys<br>");
  32. $type=$info['mime'];
  33.  
  34. if($width>$height) 
  35. {
  36. $newwidth=150;
  37. $newheight=($height*$newwidth)/$width;
  38. echo("$newwidth - szer, $newheight - wys<br>");
  39. $newheight = round($newheight);
  40. echo("$newwidth - szer, $newheight - wys<br>");
  41. }
  42. if($width<=$height) 
  43. {
  44. $newheight=113;
  45. $newwidth=($width*$newheight)/$height;
  46. echo("$newwidth - szer, $newheight - wys<br>");
  47. $newwidth = round($newwidth);
  48. echo("$newwidth - szer, $newheight - wys<br>");
  49. }
  50. //$newwidth=130; //przykładowo
  51. //$newheight=130; //przykładowo
  52.  
  53.  
  54.  
  55. switch($type)
  56. {
  57. case 'image/jpeg':
  58. $image=imagecreatefromjpeg("obrazki/".$imagefile);
  59. break;
  60. case 'image/png':
  61. $image=imagecreatefrompng("obrazki/".$imagefile);
  62. break;
  63. case 'image/gif':
  64. $image=imagecreatefromgif("obrazki/".$imagefile);
  65. break;
  66. default:
  67. die("Niepoprawny format pliku obrazu!");
  68. }
  69. $thumb=imagecreatetruecolor($newwidth, $newheight);
  70. imagecopyresampled($thumb, $image, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  71. $thumbfile="obrazki/"."thumb_".$imagefile; //przykładowo
  72. switch($type)
  73. {
  74. case 'image/jpeg':
  75. imagejpeg($thumb, $thumbfile);
  76. break;
  77. case 'image/png':
  78. imagepng($thumb, $thumbfile);
  79. break;
  80. case 'image/gif':
  81. imagegif($thumb, $thumbfile);
  82. break;
  83. }
  84. echo '<br><img src="'.$thumbfile.'"> <br><br>';
  85.  
  86.  
  87.  
  88. $file = $_FILES['plik']['name'];
  89. $file2 = $_FILES['plik']['tmp_name'];
  90. ?>
kossa
if(move_uploaded_file($file2, $uploaddir.$file)) zmienne $file odpowiada za nazwę pod jaką zostanie zapisany obrazek

Łukasz
barat
co do generowanej liczby , najprościej będzie użyć do tego funkcji time() która "Zwraca aktualny czas, podawany jako liczba sekund, które upłynęły od uniksowej Epoki (1 stycznia 1970 00:00:00 GMT)."

Co do niewykonywania... wystarczy sprawdzić, czy tablica $_FILE jest pusta , jeśli tak to znaczy, że nie ma obrazka smile.gif
Wtedy już tylko cały kod w warunek if($_FILE) {kod skryptu} else {jakieś echo, ze brak obrazka}
alberto
dzieki za szybkie odpowiedzi ...

dalem juz warunek if (!empty($_FILE)){ skrypt } tylko teraz jeszcze jedna rzecz

przypuscmy ze pod zmienna $gen przypisze ilosc sekund z funkcji time() tylko teraz jak dodac to do nazwy zapisywanego pliku ?

sorry za moja ociemnialosc ale dopiero sie ucze winksmiley.jpg

pozdro
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.