2014-11-25 95 views
0

我有图片上传脚本,当我们上传图片或图片时,功能调整大小,
从原始图片制作两张图片,一张是205 * 256,另一张是205 * 256是800 * 500.图像 调整大小工作正常,但问题是,当我上传和调整图像大小,然后 原始图像也移动到目录...我希望只有调整大小的图像在我的 目录。 ...现在的问题是,我怎么能从目录中删除原始图像...我 不想在原始图像的目录..原始图像不能移动到目录..提前感谢!如何在调整大小后删除原始图像

<?php 
if($_POST['btnSubmit']) 
{ 
for($i=0;$i<count($_FILES["fileUpload"]["name"]);$i++) 
{ 
if(trim($_FILES["fileUpload"]["tmp_name"][$i] !="")) 
{ 
$images = $_FILES["fileUpload"]["tmp_name"][$i]; 
list($width, $height, $type, $attr) = getimagesize($images); 
if($width>600 && $height>480) 
{ 
$new_images = "Thumbnails_".$_FILES["fileUpload"]["name"][$i]; 
move_uploaded_file($_FILES["fileUpload"]["tmp_name"][$i],"$output_dir".$_FILES["fileUpload"] ["name"][$i]); 
$res = resize(800,500,$_FILES["fileUpload"]["name"][$i],$_FILES["fileUpload"]["type"][$i]); 
$width=205; 
$height=256; 
$size=GetimageSize($res); 
$images_orig = ImageCreateFromJPEG($res); 
$photoX = ImagesX($images_orig); 
$photoY = ImagesY($images_orig); 
$images_fin = ImageCreateTrueColor($width, $height); 
ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); 
ImageJPEG($images_fin,"$output_dir".$new_images); 
ImageDestroy($images_orig); 
ImageDestroy($images_fin); 
echo "Resize Successful.<br>"; 
$objConnect = mysql_connect("localhost","root","") or die("Error Connect to Database"); 
$objDB = mysql_select_db("datbase"); 
$strSQL = "INSERT INTO gallery "; 
$strSQL .="(id,filename,Thumbnails) VALUES ('','".$_FILES["fileUpload"]["name"][$i]."','".$new_images."')"; 
$objQuery = mysql_query($strSQL); 


} 
else 
{ 
//upload the image with out changing 
} 

?> 



//This is the resize function 
<?php 
$output_dir = "MyResize/"; 
function resize($width, $height,$image,$type){ 
global $output_dir; 
$relPath = $output_dir.$image; 
list($w, $h) = getimagesize($relPath); 
/* calculate new image size with ratio */ 
$ratio = max($width/$w, $height/$h); 
$h = ceil($height/$ratio); 
$x = ($w - $width/$ratio)/2; 
$w = ceil($width/$ratio); 
/* new file name */ 
$thumb = $output_dir.$width.'x'.$height.'_'.$image; 
//echo $thumb; exit; 
/* read binary data from image file */ 
$imgString = file_get_contents($relPath); 
//echo $imgString ; exit; 
/* create image from string */ 
$image = imagecreatefromstring($imgString); 
//echo $image; exit; 
$tmp = imagecreatetruecolor($width, $height); 
imagecopyresampled($tmp, $image, 
0, 0, 
$x, 0, 
$width, $height, 
$w, $h); 
/* Save image */ 
switch ($type) { 
    case 'image/jpeg': 
    { 
     //echo $tmp; exit; 
     imagejpeg($tmp,$thumb,100); 
     break; 

    } 
    case 'image/jpg': 
    { 
     imagejpeg($tmp,$thumb,100); 
     break; 

    } 
    case 'image/png': 
    { 
     imagepng($tmp, $thumb, 0); 
     break; 
    } 
    case 'image/gif': 
    { 
     imagegif($tmp, $thumb); 
     break; 
    } 
    default: 
     break; 
} 
return $thumb; 
/* cleanup memory */ 
imagedestroy($image); 
imagedestroy($tmp); 
} 
?> 
+1

'的unlink删除原始图片($ originalImagePath);' – 2014-11-25 05:23:44

+0

删除了cakephp标志,因为这是cleary,甚至没有远程cakephp相关。 – mark 2014-11-25 06:09:58

回答

2

删除图像,使用unlink('Path to the file')

到Unix下C的unlink类似()函数。将在故障产生的E_WARNING级错误

+0

我把取消链接($ output_dir)调整大小调用函数后,但它不起作用 – 2014-11-25 05:43:14

+0

$ output_dir应该包含路径,直到图像名称,例如路径/到/ test.jpg – Pankaj 2014-11-25 05:53:35

+0

感谢pankaj,yar tuse大浩! – 2014-11-25 06:22:24

2

第一作物的图像并存储该图像,然后使用取消链接删除原始图片

unlink('Orignal image path'); 

的unlink将从文件夹

+0

我把取消链接($ output_dir)后调整大小的函数调用,但它不工作.. – 2014-11-25 05:42:02

+0

亲爱的阿卜杜勒Mr.pankaj是正确的,你必须提供整个路径..... – Affan 2014-11-25 07:22:35

相关问题