2011-03-10 240 views
1

你能帮我编辑这段代码吗?编辑和裁剪上传的图像

function insert_lenses(){ 
    // to get userid 
    $reg=$_SESSION['myusername']; 
    $result_users = mysql_query("SELECT * FROM users WHERE user_name='$reg'"); 

    while($row_users = mysql_fetch_array($result_users)) 
    { 
    $uid=$row_users[id]; 
    } 

    $uploader = $_POST['uploader']; 
    $path = 'photos/'; 
    $image=$_FILES['img_name']; 
    $img_title=$_POST['title']; 
    $img_tag=$_POST['tags']; 
    $img_desc=$_POST['description']; 
    $img_status=$_POST['status']; 
    $lenses_id=$_POST['lenses']; 
    $cam_id=$_POST['cams']; 
    $date = date("d.m.Y"); 
    //------------------------------------------ 
    $image_size=$_FILES['img_name']['size']; 
    $filename = stripslashes($_FILES['img_name']['name']); 
    $extension = getExtension($filename); 
    $extension = strtolower($extension); 

    $image_name=time().'.'.$extension; 
    $newname=$path.$image_name; 
    $copied = copy($_FILES['img_name']['tmp_name'], $newname); 


    if ($copied) { 
    $sql=mysql_query("insert into images (uid, lid, imageurl, img_date, imagesize, imagedesc, imagetitle, imagetag, status,cam,lens,user_name,img_w,img_h) 
VALUES('$uid','$lenses_id','$newname','$date','$image_size','$img_desc','$img_title','$img_tag','$$img_status','$cam_id','$lenses_id','$uploader','$w','$h')"); 



    return true; 
    }else{ 
    echo "<center><h3>There are An Errors In Uploading!</h3></center>"; 
    return false; 
    } 
} 


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

$reg=$_SESSION['myusername']; 
$result_users = mysql_query("SELECT * FROM users WHERE user_name='$reg'"); 

while($row_users = mysql_fetch_array($result_users)) 
    { 
    $getid=$row_users[id]; 
    } 

我需要在这个函数调整大小和裁剪图像像Flickr和Facebook IMG加,我做了一个新的文件夹:/ img_croped

我想插入这个文件夹在新的图像(调整大小和作物58 * 58px)

和:

mysql_query("insert into images (small_img) VALUES('$croped')"); // URL VALUE 
+0

什么是可能的图像类型? – sdleihssirhc 2011-03-10 04:32:14

+1

除了明显的SQL注入漏洞,不要使用$ _FILES数组中的'size','name'和'type'值 - 它们是用户提供的,可以被破坏。另外,不要使用'copy'。有一个专门用于处理文件上传的'move_uploaded_file'函数。 – 2011-03-10 05:04:57

回答

2

要调整和裁剪图像,检查下面的代码,这有助于裁剪图像:

<?php 
    if(isset($_POST['submit'])) { 
     include('SimpleImage.php'); 
     $image = new SimpleImage(); 
     $image->load($_FILES['uploaded_image']['tmp_name']); 
     $image->resizeToWidth(300); 
     $image->resizeToHeight(200); 
     $image->save('resizeImage.jpg'); 
     //$image->output(); 
    } else { 
?> <form action="" method="post" enctype="multipart/form-data"> 
     <input type="file" name="uploaded_image" /> 
     <input type="submit" name="submit" value="Upload" /> 
    </form><?php 
    } 
?> 

检查this link(死)找到调整大小图像的类和更多细节。

0

你可能想尝试ImageMagick的这个:

exec("convert $newname -resize 58x58^ -gravity center -extent 58x58 /img_croped/$filename"); 

这将短边调整到58,然后裁剪长边至58 PX(切断边缘)

+0

感谢您的回复,但代码是不适用于我的功能 我做到了,但该功能没有上传到img_croped文件夹 – rixlinux 2011-03-10 05:17:15

+0

@rixlinux - 我不知道如果你有'/ img_croped'像你在你的问题,或其他地方的根...命令行的最后一个参数是这个文件应该保存的位置。将其更改为您需要的文件夹和文件名,并且它应该可以工作。如果没有 - 发布你遇到的错误。 – Sergey 2011-03-10 15:19:27