Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt do przesyłania zdjęć na serwer
Forum PHP.pl > Forum > PHP
tadek92
Witam!

Tworzę skrypt, który ma przesyłać zdjęcia na serwer. Skrypt, który stworzyłem składa się z dwóch plików:

index.php
Kod
<form enctype='multipart/form-data' method=post>
                     <input type='file' name='plik' size='50'>

                     <input type='submit' value='Wyślij'>
                 </form>
                 <?php
                     include('configuration.php');
                     $uploaddir = 'db/photo/';
                     $rozszerzenie = explode(".", $_FILES['plik']['name']);
                     for($count=0;$count<=count($dozwolone)-1;$count++)if($rozszerzenie[1]==$dozwolone[$count])$ok=1;
                     if($_FILES['plik']['size'] <= $max_size){
                     if($ok == 1){
                     if(move_uploaded_file($_FILES['plik']['tmp_name'], $uploaddir.$_FILES['plik']['name'])){
                     echo 'Zdjęcie zostało dodane:

';
                     echo '<img width="400" src="db/photo/'.$_FILES['plik']['name'].'">

';

                     }else{
                     echo 'Błąd podczas wysyłania pliku.';
                     }
                     }else{

                     }
                     }else{
                     echo 'Plik ma za duży rozmiar ('.$_FILES['plik']['size'].' bajtów)
';
                     echo 'Dozwolony rozmiar: '.$max_size.' bajtów.';
                     }
                     ?>


configuration.php
Kod
<?
$max_size = 5000000; //max.rozmiar w bajtach
$dozwolone = Array('png','jpg','jpeg','gif','bmp'); //dozwolone rozszerzenia
$rozszerzenia = "png, jpg , jpeg , gif , bmp ";
?>


Skrypt działa dobrze. Mam jednak jeden problem, a mianowicie, chciałbym, aby skrypt podczas przesyłania zdjęcia na serwer skalował zdjęcie, tak aby dłuższy bok miał 640px. Jeśli jest to nie możliwe, to, żeby skalował szerokość do 640px.

Z góry dziękuje za pomoc;)
nexis
imagecopyresampled" title="Zobacz w manualu PHP" target="_manual

Cytat(http://pl.php.net/manual/en/function.imagecopyresampled.php)
  1. <?php
  2. // The file
  3. $filename = 'test.jpg';
  4.  
  5. // Set a maximum height and width
  6. $width = 200;
  7. $height = 200;
  8.  
  9. // Content type
  10. header('Content-type: image/jpeg');
  11.  
  12. // Get new dimensions
  13. list($width_orig, $height_orig) = getimagesize($filename);
  14.  
  15. $ratio_orig = $width_orig/$height_orig;
  16.  
  17. if ($width/$height > $ratio_orig) {
  18.   $width = $height*$ratio_orig;
  19. } else {
  20.   $height = $width/$ratio_orig;
  21. }
  22.  
  23. // Resample
  24. $image_p = imagecreatetruecolor($width, $height);
  25. $image = imagecreatefromjpeg($filename);
  26. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  27.  
  28. // Output
  29. imagejpeg($image_p, null, 100);
  30. ?>
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.