2015-05-14 80 views
1

部分回答question如何保存上傳的圖像名稱在MySQL數據庫中的這個

我有上傳一個裁剪圖像3種不同的寬度和高度

  1. 化身 PHP代碼的下方寬度和高度目錄200 * 200
  2. avatar1目錄寬度和高度500 * 500
  3. avatar2目錄寬度和高度700 * 700

和重命名的圖像與MD5隨機的。

<?php 
    function uploadImageFile() { // Note: GD library is required for this function 

    if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
     $iJpgQuality = 100; 

     if ($_FILES) { 
      // if no errors and size less than 250kb 
      if (! $_FILES['image_file']['error'] && $_FILES['image_file']['size'] < 250 * 1024) { 
       if (is_uploaded_file($_FILES['image_file']['tmp_name'])) { 
        if (!is_dir('avatar')) { 
         mkdir('avatar'); 
        } 
        // new unique filename 
        $sTempFileName = 'avatar/' . md5(time().rand()); 
        // move uploaded file into cache folder 
        move_uploaded_file($_FILES['image_file']['tmp_name'], $sTempFileName); 

        // change file permission to 644 
        @chmod($sTempFileName, 0644); 

        $sResultFileName = copyImageFile('avatar', $sTempFileName, 200, 200, $iJpgQuality); 
        if ($sResultFileName) { 
         copyImageFile('avatar1', $sTempFileName, 500, 500); 
         copyImageFile('avatar2', $sTempFileName, 700, 700); 
         @unlink($sTempFileName); 

         return $sResultFileName; 
        } 
       } 
      } 
     } 
    } 
    return false; 
} 

function copyImageFile($dirName, $originImageName, $iWidth, $iHeight, $iJpgQuality = 90) { 
    if (file_exists($originImageName) && filesize($originImageName) > 0) {   
     $aSize = getimagesize($originImageName); // try to obtain image info 
     if (!$aSize) { 
      @unlink($originImageName); 
      return; 
     } 

     // check for image type 
     switch($aSize[2]) { 
      case IMAGETYPE_JPEG: 
       $sExt = '.jpg'; 
       $vImg = @imagecreatefromjpeg($originImageName); 
       break; 
      /*case IMAGETYPE_GIF: 
       $sExt = '.gif'; 

       // create a new image from file 
       $vImg = @imagecreatefromgif($sTempFileName); 
       break;*/ 
      case IMAGETYPE_PNG: 
       $sExt = '.png'; 
       $vImg = @imagecreatefrompng($originImageName); 
       break; 
      default: 
       @unlink($originImageName); 
       return; 
     } 

     // create a new true color image 
     $vDstImg = @imagecreatetruecolor($iWidth, $iHeight); 

     // copy and resize part of an image with resampling 
     imagecopyresampled($vDstImg, $vImg, 0, 0, (int)$_POST['x1'], (int)$_POST['y1'], $iWidth, $iHeight, (int)$_POST['w'], (int)$_POST['h']); 

     // define a result image filename   
     if (!is_dir($dirName)) { 
      mkdir($dirName); 
     } 
     $newImageName = $dirName . DIRECTORY_SEPARATOR . md5(time().rand()) . $sExt; 

     // output image to file 
     imagejpeg($vDstImg, $newImageName, $iJpgQuality); 
     //@unlink($sTempFileName); 

     return $newImageName; 
    } 

    return false; 
} 

$sImage = uploadImageFile(); 
echo '<img src="'.$sImage.'" />'; 
?> 

我的問題

我要保存3最近上傳的圖片的URL中ara MySQL數據庫

  1. Avatar列=圖像的URL其上傳到化身目錄
  2. Avatar1 column =上傳到avatar1目錄的圖像的URL
  3. Avatar2柱=圖像的URL,其上傳到avatar2目錄

數據庫名稱:ARA

數據庫用戶:根

數據庫密碼:

數據庫地址:127.0.0.1

表名稱:配置文件

列名稱:頭像,avatar1和avatar2

+0

看看這個http://stackoverflow.com/questions/22269199/php-tot-mysql-image-uploading-not-working/22269447#22269447 – Baig

+0

謝謝@Baig,這是件好事,但它是隻爲一個圖像。請再次閱讀我的問題。 – ARA

回答

2
copyImageFile('avatar1', $sTempFileName, 500, 500); 
copyImageFile('avatar2', $sTempFileName, 700, 700); 

 include('connect/mysql.php'); 
    $avatar1=copyImageFile('avatar1', $sTempFileName, 500, 500); 
    $avatar2=copyImageFile('avatar2', $sTempFileName, 700, 700); 
$user_name = mysqli_real_escape_string($con, $_SESSION['UserName']); 

     mysqli_query($con,"UPDATE profiles SET AvatarImage='".$sResultFileName."',AvatarImageBig='".$avatar1."',AvatarImageSmall='".$avatar2."' WHERE UserName = '$user_name'"); 
     mysqli_close($con); 
+0

我是否可以將'$ con'更改爲'$ conn',因爲我已經在所有其他文檔中使用過。 '<?php define('DB_HOST',「localhost」); //數據庫位置 define('DB_NAME',「ara」); //數據庫名稱 define('DB_USER',「root」); //用戶名 define('DB_PASS',「」); //密碼 $ conn = mysqli_connect(DB_HOST,DB_USER,DB_PASS)or die(「

MySQL Error: Oops! UNABLE to CONNECT to the DATABASE!
」); mysqli_select_db($ conn,DB_NAME)或die(「
MYSQL ERROR
」); mysqli_set_charset($ conn,'utf8')或者死亡(「
UNABLE to SET database connection
」); ?>' – ARA

+0

如果您已經連接數據庫 –

+0

,則表示它變成「Undefined variable:conn' – ARA

0

感謝@Banjamin和@Qaisar

您正在使用$ CON中的功能將這段代碼

uploadImageFile($user_name), 

所以你應該通過變量$con來這個功能,東西 像

uploadImageFile($user_name, $con)當然那麼你必須改變 你的函數接受的參數。

相關問題