summaryrefslogblamecommitdiff
path: root/lib/image/upload.php
blob: 812295f19b65f86e93c52a5bb9966adbd95c7d65 (plain) (tree)


























































                                                                                                       
<?php

$title = "Upload an image";

require("lib/conf/image.php");

$number = mysql_fetch_assoc(sql("SELECT count(*) AS count FROM images WHERE owner = " . $user['id']));
assert_error($number['count'] < $quota || $user['priv'] >= $min_priv_for_no_quota || $user['id'] == 0,
	"You have already exceeded your upload quota.");

if (isset($_FILES['image'])) {
	if ($_FILES['image']['error'] != 0) {
		$error = "Sorry, an error occurred while uploading your file. Try with a smaller one.";
		require("tpl/image/upload.php");
	}
	$origname = strtolower(basename($_FILES['image']['name']));
	if (preg_match("#\.png$#",$origname)) {
		$type = "png";
	} elseif (preg_match("#\.gif$#",$origname)) {
		$type = "gif";
	} elseif (preg_match("#\.jpg$#",$origname) or preg_match("#\.jpeg$#",$origname)) {
		$type = "jpg";
	} else {
		$error = "Sorry, we only accept GIF, PNG and JPEG images.";
		require("tpl/image/upload.php");
	}
	sql("INSERT INTO images(owner, extension) VALUES(" . $user['id'] . ", '$type')");
	$id = mysql_insert_id();
	$filen = $savedir . $id . "." . $type;
	$minin = $savedir . $id . "-min." . $type;
	if (!copy($_FILES['image']['tmp_name'], $filen)) {
		$error = "An internal error occurred. You might want to try again later.";
		sql("DELETE FROM images WHERE id = $id");
		require("tpl/image/upload.php");
	}

	if ($type == "png")
		$source = imagecreatefrompng($filen); 
	elseif ($type == "jpg")
		$source = imagecreatefromjpeg($filen);
	elseif ($type == "gif")
		$source = imagecreatefromgif($filen);
	$l = imagesx($source);
	$h = imagesy($source);
	$l2 = $miniature_width;
	$h2 = $l2 * $h / $l;
	$mini = imagecreatetruecolor($l2, $h2);
	imagecopyresampled($mini, $source, 0, 0, 0, 0, $l2, $h2, $l, $h);
	if ($type == "png")
		imagepng($mini, $minin);
	elseif ($type == "jpg")
		imagejpeg($mini, $minin);
	elseif ($type == "gif")
		imagegif($mini, $minin);
	$message = "Your image has been uploaded successfully.";
	require("tpl/image/upload-ok.php");
} else {
	require("tpl/image/upload.php");
}