php上传图片,重命名,缩略图,并保存两者

mrp*_*atg 1 php

我一直在看move_upload_files函数,但我不认为这就是我需要的东西.

我需要上传一张图片(最大尺寸为2mb png,jpg,仅限gif),然后重命名,然后创建它的缩略图,并将两者保存到同一目录.我想首先上传/重命名主文件,然后取出并创建缩略图.但是我应该考虑做什么功能呢?

小智 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 );

    }//


}//
Run Code Online (Sandbox Code Playgroud)

我使用它上传,重命名和创建3个不同的拇指,希望这有助于某人.


kar*_*m79 5

你至少需要看看PHP的GD功能,或者更好的是Imagick来创建拇指.

这里有数以万计的教程,这里有几个:

或者您可以使用现成的解决方案,例如: