首页 文章

如何将图像上传到目录

提问于
浏览
0

我使用以下代码将图像上传到文件夹。我的文件夹名称是 ADS。请帮我将该图像上传到我的 ADS 目录。

root - localhost/dc/upload.php(代码在这个位置)

应将图像添加到位置 localhost/dc/ADS 的文件夹中

if (isset($_POST["submit"])) {
    if (is_array($_FILES)) {
        $file = $_FILES['myImage']['tmp_name']; 
        $source_properties = getimagesize($file);
        $image_type = $source_properties[2]; 

        if ($image_type == IMAGETYPE_JPEG ) {   
            $image_resource_id = imagecreatefromjpeg($file);  
            echo $target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
            echo imagejpeg($target_layer,$_FILES['myImage']['name']);
        } elseif ($image_type == IMAGETYPE_GIF ) {  
            $image_resource_id = imagecreatefromgif($file);
            echo$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
            echo imagegif($target_layer,$_FILES['myImage']['name'] );
        } elseif ($image_type == IMAGETYPE_PNG ) {
            $image_resource_id = imagecreatefrompng($file); 
            echo$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
            echo imagepng($target_layer,$_FILES['myImage']['name']);
        }
    }
}

function fn_resize($image_resource_id,$width,$height) 
{
    $target_width =540;
    $target_height =400;
    $target_layer=imagecreatetruecolor($target_width,$target_height);
    imagecopyresampled($target_layer,$image_resource_id,0,0,0,0,$target_width,$target_height, $width,$height);
    return $target_layer;
}

当我使用此代码时,图像显示在 Image1 中。我需要它像在 Image2 中没有任何图像更改,我需要在图像上有文字或图像水印,如 Image3。

在此输入图像描述

1 回答

  • 0

    PHP 函数 imagepng imagegif 和 imagejpeg 都有一个参数来传递文件名。我重构了你的代码来展示这个。

    <?php
    
    if (isset($_POST["submit"])) {
        if (is_array($_FILES)) {
            $file = $_FILES['myImage']['tmp_name'];
            $source_properties = getimagesize($file);
            $image_type = $source_properties[2];
    
            if ($image_type == IMAGETYPE_JPEG) {
                $image_resource_id = imagecreatefromjpeg($file);
                echo $target_layer = fn_resize($image_resource_id, $source_properties[0], $source_properties[1]);
                imagejpeg($target_layer, "localhost/dc/ADS/" . $_FILES['myImage']['name']);
            }
            elseif($image_type == IMAGETYPE_GIF) {
                $image_resource_id = imagecreatefromgif($file);
                echo$target_layer = fn_resize($image_resource_id, $source_properties[0], $source_properties[1]);
                imagegif($target_layer, "localhost/dc/ADS/" . $_FILES['myImage']['name']);
            }
            elseif($image_type == IMAGETYPE_PNG) {
                $image_resource_id = imagecreatefrompng($file);
                echo$target_layer = fn_resize($image_resource_id, $source_properties[0], $source_properties[1]);
                imagepng($target_layer, "localhost/dc/ADS/" . $_FILES['myImage']['name']);
            }
        }
    }
    
    function fn_resize($image_resource_id, $width, $height) {
        $target_width = 540;
        $target_height = 400;
        $target_layer = imagecreatetruecolor($target_width, $target_height);
        imagecopyresampled($target_layer, $image_resource_id, 0, 0, 0, 0, $target_width, $target_height, $width, $height);
        return $target_layer;
    }
    

相关问题