FILE image 150x150
ben nu bezig met een script om een avatar te uploaden...
het lukt aardig.
alles werkt, maar er is nog 1 ding wat ik mis.
ik wil graag dat de afmetingen maar 150x150 zijn....
hoe kan ik dat doen?
Alvast bedankt.
php image 150x150. Is it really that hard?
klik hier, als je het bestand gelijk met deze afmetingen wilt opslaan, dan moet je hier ff kijken:
Klik hier
Klik hier1
Klik hier2
deze zouw je kunnen gebruiken bij het opvragen, Klik hier
Klik hier1
Klik hier2
hoe kan ik zo toe passen bij wat ik nu heb? :S
want in vele functies zitten al file chekkers enz...
wat ik nu heb:
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
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
if ((
($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/GIF")
|| ($_FILES["file"]["type"] == "image/JPEG")
|| ($_FILES["file"]["type"] == "image/JPG")
|| ($_FILES["file"]["type"] == "image/PNG")
)){
if ($_FILES["file"]["size"] < 800000){
if ($_FILES["file"]["error"] > 0){
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}else{
if (file_exists("images/users/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"],
"images/users/" . $_FILES["file"]["name"]);
}
}
}else{
echo "Uw bestand is te groot.<br>";
}
}else{
echo "bestand type is niet geldig.<br>";
}
}
($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/GIF")
|| ($_FILES["file"]["type"] == "image/JPEG")
|| ($_FILES["file"]["type"] == "image/JPG")
|| ($_FILES["file"]["type"] == "image/PNG")
)){
if ($_FILES["file"]["size"] < 800000){
if ($_FILES["file"]["error"] > 0){
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}else{
if (file_exists("images/users/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"],
"images/users/" . $_FILES["file"]["name"]);
}
}
}else{
echo "Uw bestand is te groot.<br>";
}
}else{
echo "bestand type is niet geldig.<br>";
}
}
Quote:
((
($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/GIF")
|| ($_FILES["file"]["type"] == "image/JPEG")
|| ($_FILES["file"]["type"] == "image/JPG")
|| ($_FILES["file"]["type"] == "image/PNG")
)){
($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/GIF")
|| ($_FILES["file"]["type"] == "image/JPEG")
|| ($_FILES["file"]["type"] == "image/JPG")
|| ($_FILES["file"]["type"] == "image/PNG")
)){
Daar kun je gewoon met geen mogelijkheid op vertrouwen. Gebruik daar liever getimagesize voor. Als daar niets zinnigs uitkomt weet je gelijk zeker dat PHP het niet ondersteunt. Daarnaast had je voor iets dergelijks beter in_array kunnen gebruiken :).
Heb je wel eens met de GD-functies gewerkt? Kijk anders een naar imagecopyresampled, dat is wat je zoekt geloof ik.
Quote:
Waarom maak je er niet gewoon een unieke filename van?if (file_exists("images/users/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
echo $_FILES["file"]["name"] . " already exists. ";
het lukt niet helemaal, ik heb de volgende tut gebruikt:
http://phphulp.nl/php/tutorials/4/226/413/
wat ik nu heb:
Code (php)
1
2
2
$array = array('image/gif','image/gif','image/jpg','image/png','image/GIF','image/JPEG','image/JPG','image/PNG');
if(in_array($_FILES["file"]["type"],$array)){
if(in_array($_FILES["file"]["type"],$array)){
maar hij zegt bij alles dat het bestand geen geldige typen is.
dus ik neem aan dat er wat verkeerd is?
nee, ik weet niet wat een GD-Functie is.
werk zelf nooit met functies wat ik me wel moet gaan aan leren omdat het veel werk gaat schelen...
Misschien dat ik dat idd ook ga doen.
Waarom staat er dubbel 'image/gif' in?
Soms hebben mensen fotos .GIF dat kan zo zijn dat de fotos van bepaalde camera's komen, vandaar heb ik het in grote letters en kleine letters.
Quote:
Ja, dat neem ik ook aan... Volgens mij had ik je al verteld dat je niet kunt vertrouwen op het type wat de browser meestuurt. Ik zou gewoon eens met getimagesize-functie proberen. Dan kun je wat meer zien.maar hij zegt bij alles dat het bestand geen geldige typen is.
dus ik neem aan dat er wat verkeerd is?
dus ik neem aan dat er wat verkeerd is?
En afgezien daarvan doe je het ook nog op een totaal ineffectieve manier:
Code (php)
1
2
3
2
3
<?php
if(in_array(strtolower($_POST['file']['type']), Array('image/jpeg', 'image/png', 'image/gif')); # Het bestand is volgens de browser een image. Maar controleer dat altijd zelf nog een keertje :D
?>
if(in_array(strtolower($_POST['file']['type']), Array('image/jpeg', 'image/png', 'image/gif')); # Het bestand is volgens de browser een image. Maar controleer dat altijd zelf nog een keertje :D
?>
Quote:
Tsjonge, ik ben hier op het forum net beginner-af. Maar volgens mij kunnen we wat dat betreft beter ruilen... :)werk zelf nooit met functies wat ik me wel moet gaan aan leren omdat het veel werk gaat schelen...
PHP create thumbnails. Dat geeft je meer informatie dan ik je ooit van mijn leven kan geven.
Gewijzigd op 01/01/1970 01:00:00 door Jan Willem van der Veer
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
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
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_FILES['error'] == 0) {
$tmp = $_FILES['userfile']['tmp_name'];
if (is_uploaded_file ($tmp)) {
$name = preg_replace ('/[^a-zA-z\.]/', '', $_FILES['userfile']['name']);
$path = $_SERVER['DOCUMENT_ROOT'] . '/gfx/';
if (move_uploaded_file ($tmp, $path . $name)) {
$msg = '<p>Geupload: ' . $name . '</p>';
$msg .= '<p><img src="gfx/' . $name . '" /></p>';
$img = new Imagick ($path . $name);
$img->scaleImage (150, 150);
$img->writeImage ($path . $name);
$img->destroy ();
// hier moet absoluut beveiling tegen MySQL injection op
// dus minstens mysql_real_escape_string () over $name heen halen
$sql = "
INSERT INTO tabelnaam
(filename)
VALUES
('" . $name . "')
";
$msg .= '<pre>' . print_r (htmlentities ($sql), true) . '</pre>';
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>PHP Image Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
div#container {margin: 30px auto; width: 500px; padding: 10px;}
input,
div#container {font: 11px "Lucida Sans Unicode";}
h1 {font: bold 11px "Lucida Sans Unicode";}
</style>
</head>
<body>
<div id="container">
<h1>PHP Image Upload</h1>
<?php
if (isset ($msg)) {
echo $msg;
}
?>
<form method="post" action="image_upload.php" enctype="multipart/form-data">
<div>
<input id="userfile" name="userfile" type="file" />
<input type="submit" value="upload" />
</div>
</form>
</div>
</body>
</html>
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_FILES['error'] == 0) {
$tmp = $_FILES['userfile']['tmp_name'];
if (is_uploaded_file ($tmp)) {
$name = preg_replace ('/[^a-zA-z\.]/', '', $_FILES['userfile']['name']);
$path = $_SERVER['DOCUMENT_ROOT'] . '/gfx/';
if (move_uploaded_file ($tmp, $path . $name)) {
$msg = '<p>Geupload: ' . $name . '</p>';
$msg .= '<p><img src="gfx/' . $name . '" /></p>';
$img = new Imagick ($path . $name);
$img->scaleImage (150, 150);
$img->writeImage ($path . $name);
$img->destroy ();
// hier moet absoluut beveiling tegen MySQL injection op
// dus minstens mysql_real_escape_string () over $name heen halen
$sql = "
INSERT INTO tabelnaam
(filename)
VALUES
('" . $name . "')
";
$msg .= '<pre>' . print_r (htmlentities ($sql), true) . '</pre>';
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>PHP Image Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
div#container {margin: 30px auto; width: 500px; padding: 10px;}
input,
div#container {font: 11px "Lucida Sans Unicode";}
h1 {font: bold 11px "Lucida Sans Unicode";}
</style>
</head>
<body>
<div id="container">
<h1>PHP Image Upload</h1>
<?php
if (isset ($msg)) {
echo $msg;
}
?>
<form method="post" action="image_upload.php" enctype="multipart/form-data">
<div>
<input id="userfile" name="userfile" type="file" />
<input type="submit" value="upload" />
</div>
</form>
</div>
</body>
</html>