2014-09-20 158 views
-1

我有一個只上傳圖像但不調整大小(寬度/高度)圖像的代碼。使用PHP調整大小(寬度/高度)圖像

我試過this解決方案並嵌入它,但它不工作。

任何人都可以爲我找到解決方案。

這是我原來的代碼

文件名: avatar.php

<?php 
// declare variables 
$msg = ''; 
$f_avatar_image = ''; 
// ------------------------------------------------------------ 
// UPLOAD AVATAR 
// ------------------------------------------------------------ 
if(isset($_POST['btnUploadAvatar']) && !empty($_FILES['fileUpload']['name'])) 
{ 
    // create variables 
    $avatar_directory = AVATAR_FILE_DIRECTORY; 
    $file_name = $_FILES['fileUpload']['name']; 
    $file_type = $_FILES['fileUpload']['type']; 
    $file_size = $_FILES['fileUpload']['size']; 
    $file_size_limit = AVATAR_FILE_SIZE; 
    $calc_kilobites = 1024; 
    $file_size_kb = round($file_size/$calc_kilobites, 2); 
    $temp_file_name = $_FILES['fileUpload']['tmp_name']; 
    $upload_error = $_FILES['fileUpload']['error']; 


    // create unique file name 
    $unique_file_name = $user_name.'-'.$file_name; 
    $avatar_img_url = AVATAR_IMAGE_URL.$user_name.'-'.$file_name; 

    // if upload error display error message 
    if($upload_error > 0) 
    { 
     echo 'ERROR:' . $upload_error; 
    } 

    // if no upload error - check for file types 
    if($upload_error == 0 && 
    $file_type == 'image/gif' || 
    $file_type == 'image/jpeg' || 
    $file_type == 'image/png') 
    { 
     // if file size is within limits 
     if($file_size <= $file_size_limit) 
     { 
      // move uploaded file to assigned directory 
      if(move_uploaded_file($temp_file_name, $avatar_directory . $unique_file_name)) 

      { 
       // get user id 
       $get_user_id = mysqli_query($conn, "SELECT UserId FROM users WHERE UserName = '$user_name' Limit 1") or die($dataaccess_error); 

       // if user id exist 
       if(mysqli_num_rows($get_user_id) == 1) 
       { 
        $row = mysqli_fetch_array($get_user_id); 
        $user_id = $row['UserId']; 

        // check if user profile already exist 
        $check_user_profile = mysqli_query($conn, "SELECT UserId FROM profiles WHERE UserName = '$user_name' Limit 1") or die($dataaccess_error); 

        // if user profile exist - update 
        if(mysqli_num_rows($check_user_profile) == 1) 
        { 
         // update profiles 
         $update_profile = mysqli_query($conn, "UPDATE profiles SET AvatarImage = '$avatar_img_url' WHERE UserName = '$user_name'") or die($dataaccess_error); 

         if(mysqli_affected_rows($conn) > 0) 
         { 
          echo 'Upload Success! <br/>'; 
          echo 'File Name: '.$file_name.'<br/>'; 
          echo 'File Type: '.$file_type.'<br/>'; 
          echo 'File Size: '.$file_size_kb.' Kb <br/>'; 
          $msg = $profile_update_success; 
         } 
         else 
         { 
          $msg = $profile_update_failed; 
         } 
        } 
        else 
        { 
         // create profile 
         $insert_profile = mysqli_query($conn, "INSERT INTO profiles(UserId,UserName,AvatarImage) VALUES($user_id,'$user_name','$avatar_img_url')") or die($dataaccess_error); 

         if(mysqli_affected_rows($conn) > 0) 
         { 
          echo 'Upload Success! <br/>'; 
          echo 'File Name: '.$file_name.'<br/>'; 
          echo 'File Type: '.$file_type.'<br/>'; 
          echo 'File Size: '.$file_size_kb.' Kb <br/>'; 
          $msg = $profile_update_success; 
         } 
         else 
         { 
          $msg = $profile_create_failed; 
         } 
        } 
       } 
       else 
       { 
        // user id not found 
        $msg = $profile_update_failed2; 
       } 
      } 
      else 
      { 
       $msg = $avatar_upload_failed; 
      } 
     } 
     else 
     { 
      $msg = $avatar_file_too_large; 
     } 
    } 
    else 
    { 
     $msg = $avatar_wrong_file_type; 
    } 
} 
elseif(isset($_POST['btnUploadAvatar']) && empty($_FILES['fileUpload']['name'])) 
{ 
    $msg = $avatar_empty; 
} 


// ------------------------------------------------------------ 
// DISPLAY AVATAR ON PAGE LOAD 
// ------------------------------------------------------------ 
if($user_name) 
{ 
    // get user id 
    $get_avatar_image = mysqli_query($conn, "SELECT AvatarImage FROM profiles WHERE UserName = '$user_name' Limit 1") or die($dataaccess_error); 

    if(mysqli_num_rows($get_avatar_image) == 1) 
    { 
     $row = mysqli_fetch_array($get_avatar_image); 
     if($row['AvatarImage'] != 'NULL' && $row['AvatarImage'] != '') 
     { 
      $f_avatar_image = $row['AvatarImage']; 
     } 
     else 
     { 
      $f_avatar_image = AVATAR_IMAGE_URL.DEFAULT_AVATAR_IMAGE; 
     } 
    } 
    else 
    { 
     $f_avatar_image = AVATAR_IMAGE_URL.DEFAULT_AVATAR_IMAGE; 
    } 
} 
?> 

這是我想將它嵌入

error_reporting(0); 

    $change=""; 
    $abc=""; 


    define ("MAX_SIZE","400"); 
    function getExtension($str) { 
      $i = strrpos($str,"."); 
      if (!$i) { return ""; } 
      $l = strlen($str) - $i; 
      $ext = substr($str,$i+1,$l); 
      return $ext; 
    } 

    $errors=0; 




    if($_SERVER["REQUEST_METHOD"] == "POST") 
    { 
     $image =$_FILES["file"]["name"]; 
     $uploadedfile = $_FILES['file']['tmp_name']; 


     if ($image) 
     { 

      $filename = stripslashes($_FILES['file']['name']); 

      $extension = getExtension($filename); 
      $extension = strtolower($extension); 


    if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
      { 

       $change='<div class="msgdiv">Unknown Image extension </div> '; 
       $errors=1; 
      } 
      else 
      { 

    $size=filesize($_FILES['file']['tmp_name']); 


    if ($size > MAX_SIZE*1024) 
    { 
     $change='<div class="msgdiv">You have exceeded the size limit!</div> '; 
     $errors=1; 
    } 


    if($extension=="jpg" || $extension=="jpeg") 
    { 
    $uploadedfile = $_FILES['file']['tmp_name']; 
    $src = imagecreatefromjpeg($uploadedfile); 

    } 
    else if($extension=="png") 
    { 
    $uploadedfile = $_FILES['file']['tmp_name']; 
    $src = imagecreatefrompng($uploadedfile); 

    } 
    else 
    { 
    $src = imagecreatefromgif($uploadedfile); 
    } 

    echo $scr; 

    list($width,$height)=getimagesize($uploadedfile); 


    $newwidth=150; 
    $newheight=($height/$width)*$newwidth; 
    $tmp=imagecreatetruecolor($newwidth,$newheight); 


    $newwidth1=50; 
    $newheight1=($height/$width)*$newwidth1; 
    $tmp1=imagecreatetruecolor($newwidth1,$newheight1); 

    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); 

    imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height); 


    $filename = "profile.pic/profile/big" .date('Y-m-d_His - '). $_FILES['file']['name']; 

    $filename1 = "profile.pic/header/small".date('Y-m-d_His - '). $_FILES['file']['name']; 

    // mysql_query("update {$prefix}users set img='$big',img_small='$small' where user_id='$user'"); 
$change=' Image Uploaded Successfully!'; 




    imagejpeg($tmp,$filename,100); 

    imagejpeg($tmp1,$filename1,100); 

    imagedestroy($src); 
    imagedestroy($tmp); 
    imagedestroy($tmp1); 
    }} 

    } 

    //If no errors registred, print the success message 
    if(isset($_POST['Submit']) && !$errors) 
    { 

     // mysql_query("update {$prefix}users set img='$big',img_small='$small' where user_id='$user'"); 
     $change=' <div class="msgdiv">Image Uploaded Successfully!</div>'; 
    } 
+0

我只需要將第二個代碼嵌入到avatar.php文件中。 – arafi 2014-09-20 14:17:22

回答

0

只需將代碼簡單。從上面的代碼我們將得到一個變量中的圖像URL,我們可以使用這樣的外部調整大小功能,如下所示:

$ imgUrl ='http://www.planet-source-code.com/vb/2010Redesign/images/LangugeHomePages/PHP.png';

在HTML

現在只要進行以下chnages

「HEIGHT =」 50" WIDTH = 「50」/>

希望這有助於。

+0

謝謝,如果我這樣做,那麼我的網站會變慢,因爲如果用戶上傳2mb圖像配置文件,那麼2mb配置文件圖像將加載我的網站所有的時間,這將使網站運行速度變慢。 – arafi 2014-09-20 13:42:40

+0

你好阿里夫。你也可以儘量減少圖像尺寸.. – Rushit 2014-10-07 13:59:49

0

ImageMagick的一直對我非常有幫助!例如,從sitepoint:

$inFile = "test.jpg"; 
$outFile = "test-thumbnail.jpg"; 
$image = new Imagick($inFile); 
$image->thumbnailImage(200, 200); 
$image->writeImage($outFile); 

一個很好的教程在這裏:http://www.sitepoint.com/crop-and-resize-images-with-imagemagick/

希望有幫助!

+0

謝謝,但我想用純PHP和AJAX來做到這一點,因爲我的服務器沒有imagemagick – arafi 2014-09-20 14:13:50

相關問題