我一直在看move_upload_files函数,但我不认为这就是我需要的。
我需要上传图片(最大尺寸为2mb png,jpg,仅限gif),然后重命名,然后创建它的缩略图,并将两者保存到同一目录。我想首先上传/重命名主文件,然后取出并创建缩略图。但是我应该考虑做什么功能呢?
答案 0 :(得分:7)
if(isset($_FILES['p1']) && $_FILES['p1']['tmp_name'] != ''){
$sizes = array();
$sizes['50'] = 50;
$sizes['150'] = 150;
$sizes['500'] = 500;
$prefix = time();
list(,,$type) = getimagesize($_FILES['p1']['tmp_name']);
$type = image_type_to_extension($type);
move_uploaded_file($_FILES['p1']['tmp_name'], 'uploads/'.$prefix.$type);
$t = 'imagecreatefrom'.$type;
$t = str_replace('.','',$t);
$img = $t('uploads/'.$prefix.$type);
foreach($sizes as $k=>$v){
$width = imagesx( $img );
$height = imagesy( $img );
$new_width = $v;
$new_height = floor( $height * ( $v / $width ) );
$tmp_img = imagecreatetruecolor( $new_width, $new_height );
imagealphablending( $tmp_img, false );
imagesavealpha( $tmp_img, true );
imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
$c = 'image'.$type;
$c = str_replace('.','',$c);
$c( $tmp_img, 'uploads/'.$k.'_'.$prefix.$type );
}//
}//
我用它来上传,重命名和创建3个不同的拇指,希望这可以帮助某人。
答案 1 :(得分:5)
您至少需要查看PHP's GD functions,或者更好的Imagick来创建大拇指。
这里有数以万计的教程,这里有几个:
或者您可以使用现成的解决方案,例如:
答案 2 :(得分:1)
查看phpThumb。
答案 3 :(得分:1)
PHPThumb是你需要的...只需在api中搜索允许你保存图像的方法。关于上传图片..这里你有一个不错的tutorial about it
答案 4 :(得分:0)
@Ian Wilkinson php.net
使用 imagecopyresampled()
可以获得更好的质量