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

标签 javascript php image dropzone.js

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

图像的宽度不应超过 800 像素,高度并不重要,因为它永远不会很大。 我现在想要做的是调整图像大小,使宽度为 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 调用此脚本之前调整它的大小。

最佳答案

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

尝试阅读以下内容:

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

关于javascript - PHP在上传之前调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32481010/

相关文章:

javascript - 在超链接中使用 href 而不是 onClick - Javascript

javascript - 滚动 div 元素时防止整页滚动

javascript - ajax总是返回true

c# - WPF 控件图像在 WinForms 中失败

java - 从 jar 文件加载图像(使用 Eclipse IDE)

错误?按向上和向左箭头键时没有空格键事件

php - Heroku 本地 : how to install support for Postgres

php - 带有特殊字符的 json,例如 é

php - 点斜杠对 PHP 包含调用有什么作用?

javascript - 我尝试在 p5.js 中保存 27 个图像,但只有 10 个保存到我的下载文件夹中。为什么所有文件都没有保存?