Advertisement
machalda

PHP file/pic upload

May 10th, 2013
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.79 KB | None | 0 0
  1. <?php
  2. require_once '../db.php';
  3. $soubor_name = ($_FILES["soubor"]["name"]);
  4. $soubor = ($_FILES["soubor"]["tmp_name"]);
  5. $soubor_size = ($_FILES["soubor"]["size"]/1024)/1024;
  6. $ok = ($_POST["ok"]);
  7. $fb_id = $_POST["fb_id"];
  8. $username = $_POST["username"];
  9. $privacy = $_POST["privacy"];
  10. if($privacy == "private") $privacy=1;
  11. else $privacy=0;
  12. $text = false; //pokud je nastaveni true, vklada se textovy komentar
  13. $zmensit = false; //pokud je nastaveno true, zmensuje obrazek
  14.  
  15. if (isset($ok)  && $soubor_name!="")
  16. {
  17.     $oldName=$soubor_name;
  18.     $pripona = strtolower(pathinfo($soubor_name, PATHINFO_EXTENSION));
  19.     $soubor_name=time().rand().".png";
  20.     if (move_uploaded_file($soubor, "./$soubor_name"))
  21.         {
  22.             chmod ("./$soubor_name", 0646);
  23.             //zjisteni typu souboru
  24.             $file_info = new finfo(FILEINFO_MIME); 
  25.             $mime_type = $file_info->buffer(file_get_contents($soubor_name));      
  26.            
  27.             $mime = explode(";", $mime_type);
  28.             $isPic = false;
  29.             switch($mime[0])
  30.             {
  31.                 case "image/jpeg":
  32.                     $picture=ImageCreateFromJPEG($soubor_name);// Načtení uloženého obrázku
  33.                     $isPic=true;
  34.                     break;
  35.                 case "image/png":
  36.                     $picture=ImageCreateFromPNG($soubor_name); // Načtení uloženého obrázku
  37.                     $isPic=true;
  38.                     break;
  39.                 case "image/gif":
  40.                     $picture=imagecreatefromgif($soubor_name);// Načtení uloženého obrázku
  41.                     $isPic=true;
  42.                     break;
  43.                 case "image/x-ms-bmp":
  44.                     $picture=imagecreatefromstring($soubor_name);// Načtení uloženého obrázku
  45.                     $isPic=false;
  46.                     break;
  47.                 default: $isPic=false;
  48.        
  49.             }
  50.             //end of zjisteni typu souborzu
  51.             if($isPic)
  52.             {
  53.                 //echo "<b>Success! => $soubor_name</b><br/>";
  54.                 $info=GetImageSize($soubor_name);/*
  55.                 echo '0:'.$info[0].'<br/>';
  56.                 echo '1:'.$info[1].'<br/>';
  57.                 echo '2:'.$info[2].'<br/>';
  58.                 echo '3:'.$info[3].'<br/>';*/
  59.                 $newW=$info[0];
  60.                 $newH=$info[1];
  61.                 $thumbW=$info[0];
  62.                 $thumbH=$info[1];
  63.                 if($zmensit)
  64.                 {
  65.                     while(($newW >= 1000) || ($newH >= 1000))
  66.                     {
  67.                         $newW=round($newW*0.9);
  68.                         $newH=round($newH*0.9);
  69.                     }
  70.                 }
  71.                 //rozmery pro nahled
  72.                 while(($thumbW > 205)||($thumbH > 154))
  73.                 {
  74.                     $thumbW=round($thumbW*0.95);
  75.                     $thumbH=round($thumbH*0.95);
  76.                 }
  77.                 $tempPic =  imagecreatetruecolor ($newW, $newH);
  78.                 //vytvoreni nahledu
  79.                 $tempThumbPic =  imagecreatetruecolor (205, 154);
  80.                 imagecopyresized($tempPic, $picture, 0, 0, 0, 0, $newW, $newH, $info[0], $info[1]);
  81.                 //naneseni obrazku na nahled
  82.                 imagecopyresized($tempThumbPic, $picture, 0, 0, 0, 0, $thumbW, $thumbH, $info[0], $info[1]);
  83.                 $thumb=$tempThumbPic;              
  84.                 ImagePNG($thumb, "thumb".$soubor_name);
  85.                 $picture=$tempPic;
  86.                 //$komentar=$_POST['text'];
  87.                 if($username!="") $komentar="By ".$username." on Jakub Machalický's websites @".date(DATE_RFC822);
  88.                 else $komentar="Published on Jakub Machalický's websites @".date(DATE_RFC822);
  89.                 $font="font.ttf";
  90.                
  91.                 $logo=ImageCreateFromPNG("logo.png"); // Načtení loga serveru
  92.                 $bila=ImageColorAllocate($picture, 255, 255, 255); // Alokace barev
  93.                 $cerna=ImageColorAllocate($picture, 0, 0, 0);
  94.                 $metriky_koment=ImageTTFBBox(10, 0, $font, $komentar); // Zjištění textem zabírané oblasti
  95.                 $metriky_pic=GetImageSize($soubor_name);
  96.                     $metriky_pic[0]=$newW;
  97.                     $metriky_pic[1]=$newH;
  98.                 /* Vložení černého podkladu do levého horního rohu a následné vypsání komentáře */
  99.                 if($text)
  100.                 {
  101.                     ImageFilledRectangle($picture, 0, 0, ($metriky_koment[2]+5), ($metriky_koment[3]+20), $cerna);
  102.                     ImageTTFText($picture, 10, 0, 2, 15, $bila, $font, $komentar);
  103.                 }
  104.                 $logo_x=$metriky_pic[0]/3*2;
  105.                 $logo_y=$metriky_pic[1]-($metriky_pic[0]/3*27/100);
  106.                 ImageCopyResized($picture, $logo, $logo_x, $logo_y, 0, 0, ($metriky_pic[0]/3), ($metriky_pic[0]/3*27/100), 205, 34); // Úprava rozměrů loga a jeho umístění do obrázku
  107.                 ImagePNG($thumb, "thumb".$soubor_name);
  108.                 ImagePNG($picture, $soubor_name); // Přepsání obrázku
  109.                 if(copy($soubor_name,"images/".$soubor_name)) unlink($soubor_name);
  110.                 if(copy("thumb".$soubor_name,"images/thumb".$soubor_name)) unlink("thumb".$soubor_name);
  111.                 //echo '<a href="images/'.$soubor_name.'"><img src="images/thumb'.$soubor_name.'" alt="'.$soubor_name.'" height="154" width="205"/></a>';
  112.                
  113.                 $insert_query=mysql_query("INSERT INTO object_types (name) VALUES ('image')") or die (mysql_error());
  114.                 $last = mysql_insert_id();
  115.                
  116.                 $saveUrl = "images/".$soubor_name;
  117.                 $saveThumb = "images/thumb".$soubor_name;
  118.                 $insert_query=mysql_query("INSERT INTO images (thumb,url,user_id,date,uid,privacy, nazev) VALUES ('$saveThumb','$saveUrl', '$fb_id', NOW(),'$last','$privacy', '$oldName')") or die (mysql_error());
  119.                 $last = mysql_insert_id();
  120.                
  121.                 $backString="?type=image&upid=".$last;
  122.             }
  123.             else
  124.             {
  125.                 //prace se souborem pokud to neni obrazek
  126.                 //echo "typ: ".$mime_type;
  127.                 $pom=$soubor_name;
  128.                 $pomPole=explode(".",$pom);
  129.                 $noveJmeno=$pomPole[0].".".$pripona;   
  130.                 rename($soubor_name, $noveJmeno);
  131.                 //echo "<b>Success! =>$oldName</b> @";
  132.                 //printf('%1.2f',$soubor_size);
  133.                 echo "MB";
  134.                
  135.                 $insert_query=mysql_query("INSERT INTO object_types (name) VALUES ('file')") or die (mysql_error());
  136.                 $last = mysql_insert_id();
  137.                
  138.                 $saveUrl = "files/".$noveJmeno;
  139.                 $insert_query=mysql_query("INSERT INTO files (url,user_id,date,uid,privacy, nazev) VALUES ('$saveUrl', '$fb_id', NOW(),'$last','$privacy', '$oldName')") or die (mysql_error());
  140.                 $last = mysql_insert_id();
  141.                
  142.                 if(copy($noveJmeno,"files/".$noveJmeno)) unlink($noveJmeno);
  143.                 $backString="?type=file&upid=".$last;
  144.             }
  145.         }
  146.         else
  147.         {
  148.         header("Location: uploaded.php?result=NOT_UPLOADED");
  149.         }
  150. }
  151. header("Location: uploaded.php$backString");
  152. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement