【问题标题】:I need to resize image on upload我需要在上传时调整图像大小
【发布时间】:2017-03-12 03:07:29
【问题描述】:

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

代码:

<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 上进行了 allready 搜索,我尝试了 allready 的东西,但我没有得到它的工作。

【问题讨论】:

标签: php image upload resize


【解决方案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->getImageHeight();和 $image->getImageWidth();.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2013-09-19
    • 2015-10-10
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多