我正在构建一个管理员应该可以上传图片的网站。如果图像大于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调用此脚本之前调整的大小。
答案 0 :(得分:1)
一旦你有$ _FILES,你的图像已经在服务器上了。您可以使用canvas元素在HTML5中调整客户端的大小。
试着读一下:
https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/