summaryrefslogtreecommitdiff
path: root/lib/image/upload.php
blob: 5176a3afa68cbe645d0c27e0a11bf3d9ccd08264 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?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']) && isset($_POST['name'])) {
	$name = esca($_POST['name']);
	if ($name == "") $name = $_FILES['image']['name'];
	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, name, upl_date) VALUES(" . $user['id'] . ", '$type', '" . escs($name) . "', NOW())");
	$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");
}