php上传原版的较小图像版本

php上传原版的较小图像版本,php,image,upload,webserver,Php,Image,Upload,Webserver,我是php新手,我已经设法将图片上传到我的Web服务器。 现在,我正在寻找一种方法,将原始图像的较小副本上传到我的Web服务器 例如,上载的原始图像是image1_timestamp.jpg 我还希望相同的图像最大宽度为700px,图像1_timestamp_700w.jpg,而不丢失图像的/hight比率 这是我当前的代码 if ($_FILES["file"]["error"] > 0){ echo "Error Code: " . $_FILES["file"]["error

我是php新手,我已经设法将图片上传到我的Web服务器。 现在,我正在寻找一种方法,将原始图像的较小副本上传到我的Web服务器

例如,上载的原始图像是image1_timestamp.jpg 我还希望相同的图像最大宽度为700px,图像1_timestamp_700w.jpg,而不丢失图像的/hight比率

这是我当前的代码

if ($_FILES["file"]["error"] > 0){
    echo "Error Code: " . $_FILES["file"]["error"] . "<br />";
} else {
    echo "Uploaded file: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kilobytes<br />";

    if (file_exists("/files/".$_FILES["file"]["name"])) {
        echo $_FILES["file"]["name"] . " already exists";
    } else {
        move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/mydomain.com/docs/files/images/".$_FILES["file"]["name"]);
        echo "Done";
    }
}
if($\u文件[“文件”][“错误”]>0){
回显“错误代码:”.$\u文件[“文件”][“错误”]。“
”; }否则{ echo“上传的文件:.”文件[“文件”][“名称”]。“
”; 回显“类型:”.$\u文件[“文件”][“类型”]。“
”; 回显“大小:”($_文件[“文件”][“大小”]/1024)。“千字节
”; 如果(文件存在(“/files/”$\u文件[“文件”][“名称”])){ echo$\u文件[“文件”][“名称”]“已存在”; }否则{ 移动上传的文件($文件[“文件”][“tmp名称”],“/var/www/mydomain.com/docs/FILES/images/”$文件[“文件”][“名称]); 回应“完成”; } }

谢谢

我给你写了一些东西:

请继续使用:DIRECTORY\u SEPARATOR const

<?php
    /**
     *  @brief Resize an image with keeping aspect ratio
     *  
     *  @param [in] $src_image_path :: Source image path => "C:\www\abstract.jpg"
     *  @param [in] $dst_image_path :: Destination image path => "C:\www\abstract2.jpg"
     *  @param [in] $new_width :: Width aspect ratio => "700"
     *  @return image
     *  
     */
    function resizeImage($src_image_path, $dst_image_path, $new_width) {
        $mime = getimagesize($src_image_path);

        if($mime['mime']=='image/png'){ $src_img = imagecreatefrompng($src_image_path); }
        if($mime['mime']=='image/jpg'){ $src_img = imagecreatefromjpeg($src_image_path); }
        if($mime['mime']=='image/jpeg'){ $src_img = imagecreatefromjpeg($src_image_path); }
        if($mime['mime']=='image/pjpeg'){ $src_img = imagecreatefromjpeg($src_image_path); }

        $aspect = $mime[1] / $mime[0];

        $new_height = $aspect * $new_width;

        $old_x          =   imageSX($src_img);
        $old_y          =   imageSY($src_img);

        $dst_img        =   ImageCreateTrueColor($new_width,$new_height);

        imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_width,$new_height,$old_x,$old_y); 

        // Quality compression : From 0 to 100
        $jpg_quality = 90;

        // Quality compression : From 0 to 9
        $png_quality = 8;

        if($mime['mime']=='image/png'){ $result = imagepng($dst_img, $dst_image_path, $png_quality); }
        if($mime['mime']=='image/jpg'){ $result = imagejpeg($dst_img, $dst_image_path, $jpg_quality); }
        if($mime['mime']=='image/jpeg'){ $result = imagejpeg($dst_img, $dst_image_path, $jpg_quality); }
        if($mime['mime']=='image/pjpeg'){ $result = imagejpeg($dst_img, $dst_image_path, $jpg_quality); }

        imagedestroy($dst_img); 
        imagedestroy($src_img);

        return $result;
    }

    $currentPath = dirname(__FILE__) . DIRECTORY_SEPARATOR;

    echo $currentPath;

    resizeImage($currentPath . 'abstract.jpg', $currentPath . 'abstract2.jpg', 700);
?>

为您的案例进行编辑,这可能会起作用:

<?php
    $newWidth = 700;
    $savePath = "/var/www/mydomain.com/docs/files/images/" .$_FILES["file"]["name"];

    if($_FILES["file"]["error"] > 0) {
        echo "Error Code: " . $_FILES["file"]["error"] . "<br />";
    }else {
        echo "Uploaded file: " . $_FILES["file"]["name"] . "<br />";
        echo "Type: " . $_FILES["file"]["type"] . "<br />";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kilobytes<br />";

        if(file_exists($savePath)) {
            echo $_FILES["file"]["name"] . " already exists";
        }else {
            resizeImage($_FILES["file"]["tmp_name"], $savePath, $newWidth);
            echo "Done";
        }
    }
?>


请尝试此参考资料,谢谢您的代码!!也许这听起来很愚蠢,但我不知道这是否完全取代了我当前的代码,或者我必须在哪里将其添加到我当前的代码中?我现在的理解是,我必须在上传原始文件后调用此代码(函数)?源映像路径(C:\www\abstract.jpg)我必须替换为/var/www/mydomain.com/docs/files/images/$\u files[“file”][“tmp_name”]和目标映像路径(C:\www\abstract2.jpg)我必须替换为/var/www/mydomain.com/docs/files/images/mysmallerimagenewname.jpgYes,您必须替换为源和目标的自己的文件名。请看回复,我添加你的案例。你能帮我添加从iphone和android设备上传的图像的图像旋转修复吗?