Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kopiowanie obrazka zaraz po pomniejszeniu
Forum PHP.pl > Forum > PHP
Najki
Szukałem po forum, ale nie pomogło mi to. Gdzieś znalazłem i minimalnie przerobiłem skrypciki. Wygląda to teraz tak:

upload.php
  1. <?php
  2.  
  3. $aErrors = &#092;"\";
  4. if ( !empty( $thefile_name ) ) // nie wybrano pliku
  5. {
  6. if ( ( $thefile_type == &#092;"image/gif\" ) || 
  7.  ( $thefile_type == &#092;"image/pjpeg\" ) || 
  8.  ( $thefile_type == &#092;"image/jpg\" ) || 
  9.  ( $thefile_type == &#092;"image/jpeg\" ) )
  10. {
  11. if ( $thefile_size < ( 1024 * 100 ) )
  12. {
  13. $aCurBasePath = dirname( $PATH_TRANSLATED );
  14. $aNewName = $aCurBasePath . &#092;"/upload/\" . $thefile_name;
  15. copy( $thefile, $aNewName );
  16.  
  17. /* MINIATURKA */
  18. #include 'tworzenie_malych_kopii_obrazkow.php';
  19. include 'mini.php';
  20. /* KONIEC MINIATURKI */
  21. }
  22. else
  23. {
  24. $aErrors .= &#092;"Za duży plik !!!\";
  25. }
  26. }
  27. else
  28. {  
  29. $aErrors .= &#092;"Plik nie jest typu gif ani jpeg\";
  30. }
  31. }
  32. else
  33. {
  34. $aErrors .= &#092;"Nie wybrano pliku\";
  35. }
  36. ?>
  37. <html>
  38. <head>
  39. <title>Wyświetlenie przesłanego pliku</title>
  40. </head>
  41. <body>
  42.  
  43. <?php
  44. if ( $aErrors != &#092;"\" )
  45. {
  46. print( &#092;"<b>Wystąpił błąd</b>: $aErrors<br>\" );
  47. }
  48. else
  49. {
  50. print( &#092;"Przesłany plik:<br /><br />\" );
  51. print( &#092;"<img src=\"upload/$thefile_name\" border=\"0\"><br /><br />\" );
  52. print( &#092;"Miniaturka:<br /><br />\" );
  53. print( &#092;"<img src=\"upload/mini/$thefile_name\" border=0 />\" );
  54. }
  55. ?>
  56. </body>
  57. </html>


mini.php
  1. <?
  2. $obrazek = $thefile;
  3. function obra($obrazek) { 
  4. if(!$max_szerokosc) 
  5. $max_szerokosc=80; 
  6. if(!$max_wysokosc) 
  7. $max_wysokosc=80; 
  8.  
  9. $rozmiar=GetImageSize($obrazek); 
  10. $szerokosc=$rozmiar[0]; 
  11. $wysokosc=$rozmiar[1]; 
  12.  
  13. $nowa_szerokosc = $max_szerokosc; 
  14. $nowa_wysokosc = $max_wysokosc; 
  15.  
  16. /*if(($szerokosc<=$max_szerokosc)&&($wysokosc<=$max_wysokosc)) 
  17. $nowa_szerokosc=$szerokosc; 
  18. $nowa_wysokosc=$wysokosc; 
  19. else if(($wspolczynnik_x*$wysokosc)<$max_wysokosc) 
  20. $nowa_wysokosc=ceil($wspolczynnik_x*$wysokosc); 
  21. $nowa_szerokosc=$max_szerokosc; 
  22. else 
  23. $nowa_szerokosc=ceil($wspolczynnik_y*$szerokosc); 
  24. $nowa_wysokosc=$max_wysokosc; 
  25. } */
  26. $zrd=ImageCreateFromJpeg($obrazek); 
  27. $prz=imagecreatetruecolor($nowa_szerokosc, $nowa_wysokosc); 
  28. ImageCopyResized($prz, $zrd, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc); 
  29. header(&#092;"Content-type: image/jpeg\"); 
  30. ImageJpeg($prz, null, -1); 
  31.  
  32. $aCurPath = dirname( $PATH_TRANSLATED );
  33. $nowa_mini = $aCurPath.'/upload/mini/'.$obrazek_name;
  34. copy( $obrazek, $nowa_mini );
  35.  
  36. ImageDestroy($zrd); 
  37. ImageDestroy($prz); 
  38. } 
  39. obra($obrazek); //Wywołanie funkcji i jako argument podanie ścieżki do pliku. 
  40.  
  41. ?>

Chciałbym, aby po załadowaniu obrazka wyświetlony był i duży i mały obrazek, ale najważniejsze, aby duży obrazek kopiował się do folderu ./upload/ (to już działa), a mały do folderu ./upload/mini/ (to nie działa).

Co skopalem? Proszę o pomoc.
Kuziu
Ja mam tak i działa ...


Funkcja:
  1. <?php
  2. function img_resize($img_path,$dest_path,$max_width,$max_height)
  3. {
  4. if(file_exists($img_path)){
  5. $img_size = GetImageSize($img_path);
  6. $img_width = $img_size[0];
  7. $img_height = $img_size[1];
  8.  
  9. $ratio_x = $max_width / $img_width;
  10. $ratio_y = $max_height / $img_height;
  11.  
  12. if($img_width < $max_width && $img_height < $max_height){
  13. $new_width = $img_width;
  14. $new_height = $img_height; 
  15. }else{
  16. if($ratio_x > $ratio_y){ // Fotka wyzsza niz szersza
  17. $new_width = ceil($img_width * $ratio_y);
  18. $new_height = $max_height;
  19. }else{ // Fotka szersza niz wyzsza
  20. $new_width = $max_width;
  21. $new_height = ceil($img_height * $ratio_x);
  22. }
  23. }
  24.  
  25. $zrd = ImageCreateFromJpeg($img_path);
  26. $prz = ImageCreateTrueColor($new_width,$new_height);
  27.  
  28. ImageCopyResized($prz,$zrd,0,0,0,0,$new_width,$new_height,$img_width,$img_height);
  29.  
  30. ImageJpeg($prz, $dest_path, 75);
  31. ImageDestroy($zrd);
  32. ImageDestroy($prz);
  33. }
  34. }
  35. ?>


Kod:
  1. <?php
  2.  
  3. $file_path = $_FILES['fild']['tmp_name'];
  4. $file_name = $_FILES['fild']['name'];
  5. $file_size = $_FILES['fild']['size'];
  6. $file_type = $_FILES['fild']['type'];
  7. $file_error = $_FILES['fild']['error'];
  8.  
  9. $error_msg=&#092;" \";
  10. if($file_error>0){
  11. switch($file_error)
  12. {
  13. case 1: $error_msg.=&#092;"- Za duży plik.<br>\";
  14. case 2: $error_msg.=&#092;"- Za duży plik.<br>\";
  15. case 3: $error_msg.=&#092;"- Plik niedoszedł w cało&para;ci (spróbuj ponownie).<br>\";
  16. case 4: $error_msg.=&#092;"- Niewysłałe&para; żadnego pliku.<br>\";
  17. }
  18. }else{
  19. if(strlen($file_name)>3){
  20. if($file_size>10){
  21. if($file_type==&#092;"image/pjpeg\" || $file_type==\"image/jpeg\"){
  22. if(is_uploaded_file($file_path)){
  23. if(strlen($tytul)==&#092;"0\"){$tytul='&nbsp;';}
  24. if(strlen($tresc)==&#092;"0\"){$tresc='&nbsp;';}
  25.  
  26. $sql=&#092;"INSERT INTO foto VALUES ('','$user','$tytul','$tresc','$czas')\";
  27. $result =mysql_query($sql,$connection) or die(&#092;"Wykonanie zapytania nie powiodło się.\" . mysql_error());
  28.  
  29. $sql =&#092;"SELECT id FROM foto ORDER by id DESC LIMIT 1\";
  30. $result =@mysql_query($sql,$connection) or die(&#092;"Wykonanie zapytania niepowiodło się\" . mysql_error());
  31. $row = mysql_fetch_array($result);
  32. $last_id = $row['id'];
  33. $foto_id = $last_id;
  34.  
  35. $dest_path = &#092;"upload/foto/\". $foto_id . \"_big.jpg\";
  36. $resized = img_resize($file_path,$dest_path,720,540);
  37.  
  38. $dest_path = &#092;"upload/foto/\". $foto_id . \"_small.jpg\";
  39. $resized = img_resize($file_path,$dest_path,150,150);
  40. }else{
  41. $error_msg.=&#092;"- Plik niezostał załadowany.<br>\";
  42. }
  43. }else{
  44. $error_msg.=&#092;"- Zły typ pliku (tylko JPEGi).<br>\";
  45. }
  46. }else{
  47. $error_msg.=&#092;"- Niewysłałe&para; żadnego pliku.<br>\";
  48. }
  49. }else{
  50. $error_msg.=&#092;"- Niewysłałe&para; żadnego pliku.<br>\";
  51. }
  52. }
  53. if(strlen($error_msg)>5){
  54. $msg = &#092;"<span class=gold_s>Wystapiły błędy:</span><br>\" . $error_msg;
  55. }else{
  56. $msg = &#092;"Co by niebyło, Fotka dodana.\";
  57. }
  58.  
  59. ?>
Najki
OK, trochę to zmodyfikowałem i działa smile.gif.
Jedynie nie wyświetla żadnych komunikatów :/. Wszystko się wykonuje, obrazki się tworzą, ale wyświetla się pusta strona. Coś będę musiał wymyślić, ale dzięki wielkie!
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.