2012-11-08 39 views
0

我想qualit = 80添加到我的上传图片文件...但没有成功:(php上传图片,我如何为此代码添加质量?

那是我的代码:

<?php 
// Set limit image size         
$limitFileSize=300000; 
// Set thumbnail-height to xxx in pixels          
$imageheight=250; 
    if($peoplef_id=='0'){ 
    $query = "SELECT * FROM peoplef WHERE emailzugang='$emailzugang1' "; 
$result = mysql_query($query); 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){$peoplef_id=$row['id'];}; 
    } 
if($peoplef_id!='0'){ 
uploadPic("pic1",$peoplef_id,$limitFileSize); 
uploadPic("pic2",$peoplef_id,$limitFileSize); 
uploadPic("pic3",$peoplef_id,$limitFileSize); 
uploadPic("pic4",$peoplef_id,$limitFileSize); 
uploadPic("pic5",$peoplef_id,$limitFileSize); 
uploadPic("pic6",$peoplef_id,$limitFileSize); 
uploadPic("pic7",$peoplef_id,$limitFileSize); 
uploadPic("pic8",$peoplef_id,$limitFileSize); 
} 
function uploadPic($PicName,$itemsID,$limitFileSize) 
{ 
//if($_FILES[$PicName]['size'] > 0 && $_FILES[$PicName]['size'] < $limitFileSize) 
//{ 
if($_FILES[$PicName]['size'] > 0 ) 
{ 

$fileName = $_FILES[$PicName]['name']; 
$tmpName = $_FILES[$PicName]['tmp_name']; 
$fileSize = $_FILES[$PicName]['size']; 
$fileType = $_FILES[$PicName]['type']; 
$imgsize = GetImageSize($tmpName); 
    $widthWanted=$imgsize[0]; 
    $heightWanted=$imgsize[1]; 
    /*== check size 0=width, 1=height ==|| ($imgsize[1] > 200) */ 
    if (($imgsize[0] > 650)) 
    { 
    $widthWanted=2000; 
    $heightWanted=ceil((1600/$imgsize[0])*$imgsize[1]); 
    } 
echo $widthWanted; 
echo "-----"; 
echo $heightWanted; 
$array=array(); 
echo "<pre>"; 
$current_file=$tmpName; 
$thumb_name="TempUploadImg/".$PicName.$itemsID.".jpg"; 
exec("convert ".$current_file." -resize $widthWantedx$heightWanted ".$thumb_name, $array); 
echo "<br>".print_r($array)."<br>"; 
echo "</pre>"; 
$fp  = fopen($thumb_name, 'r'); 
$content = fread($fp, filesize($thumb_name)); 
$content = addslashes($content); 
fclose($fp); 
if(!get_magic_quotes_gpc()) 
{ 
$fileName = addslashes($fileName); 
} 
$picnum=$PicName; 
$query = "INSERT INTO uploadf (peoplef_id, picnum, name, size, type, content) ". 
"VALUES ('$itemsID', '$picnum', '$fileName', '$fileSize', '$fileType', '$content')"; 
//delete("test.jpg"); 
mysql_query($query) or die('Error, query failed'); 

echo "<br>Filee ". basename($fileName). " uploaded<br><br>"; 
} 
//else 
//{  
/// if($_FILES[$PicName]['size'] > 0){ 
// $fileName = $_FILES[$PicName]['name']; 
// echo "<br><font color=red> File limit Size is $limitFileSize ; canot uploaded $fileName </font><br>"; 
// } 
//} 
} 
?> 
+2

只需粘贴代码片段,这对于查看问题的人更加相关,特别是如果您的链接在以后日期无效 – TommyBs

+0

Tommy谢谢...我试图添加片段,但它没有奏效。也许你可以从链接添加我的代码并添加它...? – user1741822

+0

[请不要在新代码中使用'mysql_ *'函数](http://stackoverflow.com/q/12859942)。它们不再被维护,并且已经开始弃用过程,请参阅[红盒子](http://php.net/mysql-connect)。请改为了解[准备好的语句](http://en.wikipedia.org/wiki/Prepared_statement),并使用[PDO](http://php.net/pdo)或[MySQLi](http:// php。净/ mysqli的); [这篇文章](http://php.net/mysqlinfo.api.choosing)将帮助你决定。如果你选择PDO,[这里是一个很好的教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 –

回答

0

其实这是一个ImageMagick的问题,因为大小调整使用做。ImageMagick的

按照documentation,编写JPEG设置-quality时设定质量,所以你需要改变这样的代码:

exec("convert ".$current_file." -resize $widthWantedx$heightWanted -quality 80 ".$thumb_name, $array);