PHP在上传之前调整图像大小

时间:2015-09-09 13:33:05

标签: javascript php image dropzone.js

我正在构建一个管理员应该可以上传图片的网站。如果图像大于2MB,则由于限制而失败。但即使没有限制,由于访问者的加载时间,调整图像仍然会更好。

图像不应超过800px,高度无关紧要,因为它永远不会很大。 我现在要做的是调整图像大小,使宽度为800px或更低,高度调整大小相同。

我现在拥有以下内容:

if (!empty($_FILES)) 
{
    $upload_dir = 'photos';
    $tempFile = $_FILES['file']['tmp_name'];

    $targetPath = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . $upload_dir . DIRECTORY_SEPARATOR;
    $mainFile = $targetPath . time() . '-' . $_FILES['file']['name'];

    list($w, $h) = getimagesize($tempFile);
    if ($w > 800) 
    {   
        $ratio = 800 / $w;
        $newHeight = $ratio * $h;

        $tempFile = imagescale($tempFile, 800);
    }

    move_uploaded_file($tempFile, $mainFile);
}

但这没有做任何事情。

我使用dropzone将此脚本作为图像输入的目标。

有人能指出我正确的方向吗? 或者PHP已经尝试上传图像$_FILES后?如果是这种情况,我不知道如何解决它。然后应该在 dropzone调用此脚本之前调整的大小。

1 个答案:

答案 0 :(得分:1)

一旦你有$ _FILES,你的图像已经在服务器上了。您可以使用canvas元素在HTML5中调整客户端的大小。

试着读一下:

https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/