Afbeelding verkleind weergeven
Nu heb ik het volgende probleem.
Ik heb een image uploader, http://powarimages.netii.net/uploader.php
Nu wil ik dat als je afbeelding geupload is er een preview wordt weergegeven.
Maar dat die preview wel verkleind is. Dit kan simpel in HTML. Maar ik wil maximale waarden. Dus een afbeelding die 50x1000 is, en je zet de waarden op height=100 en width niet gedefiniëerd dan krijg je hem vergroot naar 100x2000.
Nu wil ik er 1, waarbij hij verkleint wordt naar maximaal 200px breed, óf hoog. (hangt ervanaf, zie het 50x1000 voorbeeld) en dat hij kleine afbeelding (bijvoorbeeld smileys) niet gaat vergroten!
Is dit mogelijk, of moet daar een 100 regels lang phpscript voor geschreven worden?
Grtz,
Nino van den Bosch
En als ik het goed begrijp zet jou resizer hem op een andere locatie, dus moet hij weer opnieuw ruimte in beslag nemen?
En hoe zou ik zo'n resizer in mijn script moeten integreren?
Code (php)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
//define a maxim size for the uploaded images in Kb
define ("MAX_SIZE","10000");
//This function reads the extension of the file. It is used to determine if the file is an image by checking the extension.
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
//This variable is used as a flag. The value is initialized with 0 (meaning no error found)
//and it will be changed to 1 if an errro occures.
//If the error occures the file will not be uploaded.
$errors=0;
//checks if the form has been submitted
if(isset($_POST['Submit']))
{
//reads the name of the file the user submitted for uploading
$image=$_FILES['image']['name'];
//if it is not empty
if ($image)
{
//get the original name of the file from the clients machine
$filename = stripslashes($_FILES['image']['name']);
//get the extension of the file in a lower case format
$extension = getExtension($filename);
$extension = strtolower($extension);
//if it is not a known extension, we will suppose it is an error and will not upload the file,
//otherwise we will do more tests
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif"))
{
//print error message
echo '<h1>Verkeerde extensie!</h1>';
$errors=1;
}
else
{
//get the size of the image in bytes
//$_FILES['image']['tmp_name'] is the temporary filename of the file
//in which the uploaded file was stored on the server
$size=filesize($_FILES['image']['tmp_name']);
//compare the size with the maxim size we defined and print error if bigger
if ($size > MAX_SIZE*50000000)
{
echo '<h1>U heeft de maximale grootte overschreden!</h1>';
$errors=1;
}
//we will give an unique name, for example the time in unix time format
$image_name=time().'.'.$extension;
//the new name will be containing the full path where will be stored (images folder)
$newname="images/".$image_name;
//we verify if the image has been uploaded, and print error instead
$copied = copy($_FILES['image']['tmp_name'], $newname);
if (!$copied)
{
echo '<h1>Kopiëren mislukt!</h1>';
$errors=1;
}}}}
//If no errors registred, print the success message
if(isset($_POST['Submit']) && !$errors)
{
?>
<h1>Uw bestand is succesvol geupload.</h1><br>
<table>
<tr><td>URL:</td><td><textarea rows="1" cols="50">http://powarimages.netii.net/<?=$newname?></textarea></td></tr><br>
<tr><td>Preview:</td><td><img height="100" border="2" src="http://powarimages.netii.net/<?=$newname?>" alt="Uw afbeelding"></td><tr></table>
<p align="center"><b>Upload meer</b></p>
<?php
}
?>
<!--next comes the form, you must set the enctype to "multipart/frm-data" and use an input type "file" -->
<form name="newad" method="post" enctype="multipart/form-data" action="">
<table>
<tr><td><input type="file" name="image"></td></tr>
<tr><td><input name="Submit" type="submit" value="Upload afbeelding"></td></tr>
</table>
</form>
//define a maxim size for the uploaded images in Kb
define ("MAX_SIZE","10000");
//This function reads the extension of the file. It is used to determine if the file is an image by checking the extension.
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
//This variable is used as a flag. The value is initialized with 0 (meaning no error found)
//and it will be changed to 1 if an errro occures.
//If the error occures the file will not be uploaded.
$errors=0;
//checks if the form has been submitted
if(isset($_POST['Submit']))
{
//reads the name of the file the user submitted for uploading
$image=$_FILES['image']['name'];
//if it is not empty
if ($image)
{
//get the original name of the file from the clients machine
$filename = stripslashes($_FILES['image']['name']);
//get the extension of the file in a lower case format
$extension = getExtension($filename);
$extension = strtolower($extension);
//if it is not a known extension, we will suppose it is an error and will not upload the file,
//otherwise we will do more tests
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif"))
{
//print error message
echo '<h1>Verkeerde extensie!</h1>';
$errors=1;
}
else
{
//get the size of the image in bytes
//$_FILES['image']['tmp_name'] is the temporary filename of the file
//in which the uploaded file was stored on the server
$size=filesize($_FILES['image']['tmp_name']);
//compare the size with the maxim size we defined and print error if bigger
if ($size > MAX_SIZE*50000000)
{
echo '<h1>U heeft de maximale grootte overschreden!</h1>';
$errors=1;
}
//we will give an unique name, for example the time in unix time format
$image_name=time().'.'.$extension;
//the new name will be containing the full path where will be stored (images folder)
$newname="images/".$image_name;
//we verify if the image has been uploaded, and print error instead
$copied = copy($_FILES['image']['tmp_name'], $newname);
if (!$copied)
{
echo '<h1>Kopiëren mislukt!</h1>';
$errors=1;
}}}}
//If no errors registred, print the success message
if(isset($_POST['Submit']) && !$errors)
{
?>
<h1>Uw bestand is succesvol geupload.</h1><br>
<table>
<tr><td>URL:</td><td><textarea rows="1" cols="50">http://powarimages.netii.net/<?=$newname?></textarea></td></tr><br>
<tr><td>Preview:</td><td><img height="100" border="2" src="http://powarimages.netii.net/<?=$newname?>" alt="Uw afbeelding"></td><tr></table>
<p align="center"><b>Upload meer</b></p>
<?php
}
?>
<!--next comes the form, you must set the enctype to "multipart/frm-data" and use an input type "file" -->
<form name="newad" method="post" enctype="multipart/form-data" action="">
<table>
<tr><td><input type="file" name="image"></td></tr>
<tr><td><input name="Submit" type="submit" value="Upload afbeelding"></td></tr>
</table>
</form>
Gewijzigd op 01/07/2010 22:33:56 door peter dhc