2013-02-17 2 views
-2
$file_extension= explode('.', $file_name); 
    $file_extn= strtolower(end($file_extension)); 
    $old_file_path = $user_data['profile_pic']; 

     function change_profile_image($user_id, $file_temp, $file_extn, $old_file_path){ 
      $file_path = 'core/images/profile/'. substr(md5(time()), 0, 20) . '.' . $file_extn; 
      move_uploaded_file($file_temp, $file_path); 
      if(file_exists($old_file_path) === true){unlink($old_file_path);} 
      mysql_query("UPDATE `users` SET `profile_pic` = '". mysql_real_escape_string($file_path) ."' WHERE `user_id` = " . (int)$user_id); 

      if($file_extn == 'png'){ 
      list($width, $height) = getimagesize($old_file_path); 
      $new_width = $width; 
      $new_height = $height; 
      $image_p = imagecreatetruecolor($new_width, $new_height); 
      $image = imagecreatefrompng($old_file_path); 

      imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
      imagejpeg($image_p, $file_path); 
if(file_exists($old_file_path) === true){unlink($old_file_path);}   
mysql_query("UPDATE `users` SET `profile_pic` = '". mysql_real_escape_string($file_path) ."' WHERE `user_id` = " . (int)$user_id); 
      } 

      if($file_extn == 'jpg' || $file_extn == 'jpeg'){ 
      list($width, $height) = getimagesize($file_path); 
      $new_width = $width; 
      $new_height = $height; 
      $image_p = imagecreatetruecolor($new_width, $new_height); 
      $image = imagecreatefromjpeg($file_path); 

      imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
      imagejpeg($image_p, $file_path); 
if(file_exists($old_file_path) === true){unlink($old_file_path);}   
mysql_query("UPDATE `users` SET `profile_pic` = '". mysql_real_escape_string($file_path) ."' WHERE `user_id` = " . (int)$user_id); 
      } 
     } 

Изображение загружается, но проблема в том, что он не преобразовывает изображение после загрузки. В чем проблема? Я считаю, что инструкции if не работают.Конвертировать .PNG изображение в .JPEG после загрузки

+0

Если вы используете нечувствительное к регистру строку сравнения (или «реальное» сравнение строк вместо '=='? – Floris

+0

Ничего. Я просто заметил функцию 'strtolower' около вершины. .. – Floris

+0

Yup, его раздражает, что это не работает – Cole

ответ

0
... 
move_uploaded_file($file_temp, $file_path); 
if(file_exists($old_file_path) === true){unlink($old_file_path);} 
... 
if($file_extn == 'png'){ 
     list($width, $height) = getimagesize($old_file_path); 
... 

Я считаю, что, так как вы удаляете $old_file_path перед использованием getimagesize($old_file_path) это не удается, так imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); не имеет ничего работать.

Попробуйте комментировать первый файл, сразу после move_uploaded_file. Довольно уверен, что проблема ...

+0

Нет, это не устранило проблему. – Cole

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