我需要在上传时调整图片大小

时间:2016-10-29 10:54:05

标签: php image upload resize

你能帮我解决这个问题吗? 我需要使用一些简单的脚本在上传时调整图像大小。

CODE:

<form method="post" enctype="multipart/form-data">
    <input type="file" name="obrazky[]" />
    <input type="submit" value="Nahrát na server!" />
</form>

<?php


// konfigurace
$uploadDir = 'imgs/nahrane'; // dir
$allowedExt = array('jpg', 'jpeg', 'png', 'gif'); // ok formats
if(isset($_FILES['obrazky']) && is_array($_FILES['obrazky']['name'])) {
    $counter = 0;
    $allowedExt = array_flip($allowedExt);
    foreach($_FILES['obrazky']['name'] as $klic => $nazev) { // make variable $nazev
        $nazev = htmlspecialchars($nazev, ENT_QUOTES);
        $fileName = basename(time() . ".png");
        $fileName = sprintf(time() . ".png", pathinfo($nazev, PATHINFO_EXTENSION));
        $tmpName = $_FILES['obrazky']['tmp_name'][$klic];
        $fileName = htmlspecialchars($fileName, ENT_QUOTES);
        // check
        if(
            !is_uploaded_file($tmpName)
            || !isset($allowedExt[strtolower(pathinfo($fileName, PATHINFO_EXTENSION))])
        ) {
            // bad format
            continue;
        }
        // move
        if(move_uploaded_file($tmpName, "{$uploadDir}".DIRECTORY_SEPARATOR."{$fileName}")) {
            ++$counter;
        }
  }
    if ($counter > 0)
    echo "<hr><p>Uploaded {$counter} z ".sizeof($_FILES['obrazky']['name'])." thank you!<br>
    <br>
    <b>LINKS</b>:<br>
    href:<br> 
    <a href='$uploadDir/$fileName'  target='_blank'>$uploadDir/$fileName</a><br>
 
    else
    echo "<hr><b><font color='red'>ERROR: Bad format or no image uploaded.</font></b><br>"; 
}
 
?>

我已经完成了google和stackoverflow的搜索,我尝试了所有的东西,但我没有得到它。

1 个答案:

答案 0 :(得分:1)

这一直对我有用:

$image = new Imagick();
$image_filehandle = fopen('some/file.jpg', 'a+');
$image->readImageFile($image_filehandle );

$image->scaleImage(100,200,FALSE);

$image_icon_filehandle = fopen('some/file-icon.jpg', 'a+');
$image->writeImageFile($image_icon_filehandle);

您可能希望根据原始图像更加动态地计算宽度和高度。您可以使用上面的示例,使用$ image-&gt; getImageHeight();来获取图像的当前宽度和高度。和$ image-&gt; getImageWidth();。