2013-06-19 2 views
0

Я работаю над скриптом, который изменяет размер изображения, загружаемого с PHP дважды.Resize загрузил фотографию дважды с помощью php

Я могу сделать одно изменение размера, но я хотел бы сделать еще один.

Вот мой код php. (// 600 для второго изменения размера).

//Redimensionons l'image 
           $source = imagecreatefromjpeg($_FILES['new_up']['tmp_name']); // La photo est la source 

           // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image 
           $largeur_source = imagesx($source); 
           $hauteur_source = imagesy($source); 
           $largeur_destination = 460; 
            //Regle de trois pour calculer la hauteur; 
           $hauteur_destination = ($hauteur_source * $largeur_destination)/$largeur_source; 

           //600 
           $largeur_destination_600 = 600; 
           $hauteur_destination_600 = ($hauteur_source * $largeur_destination_600)/$largeur_source; 

           // On crée la miniature vide 
           $destination = imagecreatetruecolor($largeur_destination, $hauteur_destination); 

           //600 
           $destination_600 = imagecreatetruecolor($largeur_destination_600, $hauteur_destination_600); 

           // On crée la miniature 
           imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source); 

           //600 
           imagecopyresampled($destination_600, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source); 

           // On edit le tmp_name avec les dimensions miniature 
           imagejpeg($destination,$_FILES['new_up']['tmp_name']); 

           //600 
           imagejpeg($destination_600,$_FILES['new_up']['tmp_name']); 

           //Re-name en md5 
           $filename = basename($_FILES['new_up']['name']); 
           $extension = pathinfo($filename, PATHINFO_EXTENSION); 
           $new  = md5($filename).'.'.$extension; 

           //Enregistrons l'image 
           move_uploaded_file($_FILES['new_up']['tmp_name'], 'uploads/' . $new); 
           echo "L'envoi a bien été effectué !"; 

           //600 
           move_uploaded_file($_FILES['new_up']['tmp_name'], 'uploads/600/' . $new); 
           echo "L'envoi a bien été effectué !"; 

ответ

0

Без много проверки кода (так, там могут быть и другие вопросы), я заметил, что ваш заказ команд не так: (! И тот же файл), вы сохраните первое изображение, затем второй и затем дважды переместите файл.

Это должно быть сделано так:

//Re-name en md5 
$filename = basename($_FILES['new_up']['name']); 
$extension = pathinfo($filename, PATHINFO_EXTENSION); 
$new  = md5($filename).'.'.$extension;// On edit le tmp_name avec les dimensions miniature 

imagejpeg($destination, 'uploads/' . $new); 

//600 
imagejpeg($destination_600, 'uploads/600/' . $new); 

Так, просто сохранить под новыми именами файлов; не перезаписывайте загруженный файл (PHP удалит его, как только скрипт будет выполнен).

Смежные вопросы