Upload->resize->mysql
Ik heb een resize-functie van jullie gekregen ( waarvoor dank trouwens ! ) en wil die in m'n uploadscript ( van Cynthia ! ) integreren. Het originele uploadscript plaatst tevens ná het uploaden de padnaam van de afbeelding in m'n db.
Ik heb de functie op verschillende plaatsen gestopt en reeds aangepast maar er wordt niks geresized...Kan iemand me helpen ?
Bedankt op voorhand !
resize-functie :
?php
function resize_foto($file_name, $percentage)
{
$lokatie = $_SESSION['ingelogdegebruiker'].'/images'.$file_name;
$size = getimagesize($_SESSION['ingelogdegebruiker'].'/'.$file_name);
$or_breedte = $size[0];
$or_hoogte = $size[1];
$new_breedte = $or_breedte * $percentage;
$new_hoogte = $or_hoogte * $percentage;
switch($size[2])
{
case 1:
$source=imagecreatefromgif($_SESSION['ingelogdegebruiker'].'/'.$file_name);
break;
case 2:
$source=imagecreatefromjpeg($_SESSION['ingelogdegebruiker'].'/'.$file_name);
break;
case 3:
$source=imagecreatefrompng($_SESSION['ingelogdegebruiker'].'/'.$file_name);
break;
}
$foto_new = imagecreatetruecolor($new_breedte, $new_hoogte);
ImageCopyResized($foto_new, $source, 0, 0, 0, 0, $new_breedte, $new_hoogte, $or_breedte, $or_hoogte);
Imagejpeg($foto_new, $lokatie, 75);
ImageDestroy($source);
ImageDestroy($foto_new);
}
?>
uploadscript :
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
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
<?php
mysql_select_db($database_tutorial, $tutorial);
$query_Recordset1 = "SELECT * FROM tut_afbeelding";
$Recordset1 = mysql_query($query_Recordset1, $tutorial) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
mysql_select_db($database_tutorial, $tutorial);
$query_Recordset2 = "SELECT distinct job FROM tut_afbeelding";
$Recordset2 = mysql_query($query_Recordset2, $tutorial) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
# De verwerking van de gegevens doen we gewoon
# met een eenvoudig formulier.
# Procedure geschreven door Cynthia Fridsma
// verbind de server
require_once('config.php');
// gebruik het filter voor de afbeeldingen
include ("filter.php");
// lees de waarde van 'go'
$go = $_POST['go'];
# als het formulier nog niet eerder is gebruikt dan
# wordt er een formulier getoond op je scherm.
if ($go ==""):
?>
mysql_select_db($database_tutorial, $tutorial);
$query_Recordset1 = "SELECT * FROM tut_afbeelding";
$Recordset1 = mysql_query($query_Recordset1, $tutorial) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
mysql_select_db($database_tutorial, $tutorial);
$query_Recordset2 = "SELECT distinct job FROM tut_afbeelding";
$Recordset2 = mysql_query($query_Recordset2, $tutorial) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
# De verwerking van de gegevens doen we gewoon
# met een eenvoudig formulier.
# Procedure geschreven door Cynthia Fridsma
// verbind de server
require_once('config.php');
// gebruik het filter voor de afbeeldingen
include ("filter.php");
// lees de waarde van 'go'
$go = $_POST['go'];
# als het formulier nog niet eerder is gebruikt dan
# wordt er een formulier getoond op je scherm.
if ($go ==""):
?>
</head>
<body>
<form name="form1" method="post" action="" enctype="multipart/form-data">
<!-- Hier komt het verborgen veld 'go met de waarde 'go' -->
<input name="go" type="hidden" value="go">
<table width="450" border="0" bgcolor="#99CCFF" align="center">
<tr>
<td bgcolor="#99CCFF">Naam</td>
<td valign="baseline"><input name="naam" type="text" id="naam" value="" size="32"></td>
</tr>
<tr>
<td bgcolor="#99CCFF">Job</td>
<td valign="baseline"><select name="job" id="job">
<option value=""
Code (php)
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
} while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));
$rows = mysql_num_rows($Recordset2);
if($rows > 0) {
mysql_data_seek($Recordset2, 0);
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
}
?>
} while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));
$rows = mysql_num_rows($Recordset2);
if($rows > 0) {
mysql_data_seek($Recordset2, 0);
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
}
?>
</select>
</td>
</tr>
<tr>
<td bgcolor="#99CCFF">Plaats</td>
<td valign="baseline"><input name="plaats" type="text" id="plaats" value="" size="32"></td>
</tr>
<tr>
<td bgcolor="#99CCFF">Hobby</td>
<td valign="baseline"><input name="hobby" type="text" id="hobby" value="" size="32"></td>
</tr>
<tr>
<td bgcolor="#99CCFF">Omschrijving</td>
<td><input name="omschrijving" type="text" id="omschrijving" size="50"></td>
</tr>
<tr>
<td bgcolor="#99CCFF">Afbeelding</td>
<td><input name="afbeelding" type="file" accept="image/jpeg" id="afbeelding" size="50"></td>
</tr>
<tr>
<td bgcolor="#99CCFF"> </td>
<td><input type="submit" name="Submit" value="Verzenden">
<input type="reset" name="Reset" value="Herstellen"></td>
</tr>
</table>
<p> </p>
</form>
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
86
87
88
89
90
91
92
93
94
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
86
87
88
89
90
91
92
93
94
<?php
endif;
// Deze procedure wordt aangeroepen nadat men op verzenden heeft gedrukt
if ($go =="go"):
# Deze procedure zordt ervoor dat de afbeeldingen
# op je server worden geplaatst en tevens in je
# mysql database.
// bepaal de huidige directory
$hello = getcwd();
# hier komen de afbeeldingen, als je
# het script in de directory hallo hebt geinstalleerd
# dan worden de afbeeldingen in hallo/images/
# geplaatst.
$file_dir = ($hello . "/images/");
# we moeten natuurlijk wel zeker weten
# dat de directory bestaat. Dit controleren wij
# met de opdracht is_dir via de volgende routine :
if (is_dir ($file_dir)) {
print "<br><br>++directorty bestaat";
} else {
print "<br><br>--Directory bestaat nog niet" . $file_dir;
$newpage = $file_dir;
echo ("<br>we gaan daarom de directory aanmaken");
mkdir ($newpage, 0777);
}
// toon de systeem datum
echo date("m/d/y G.i:s");
echo ("<br><br>");
# Ik heb besloten om $_FILES als een array te
# laden, zodat je (eventueel) meer afbeeldingen via
# een formulier op je server kunt plaatsen.
foreach($_FILES as $file_name => $file_array) {
# Verander de bestandsnaam zodat het een geldig bestandsnaam wordt
# in een Linux omgeving. (Een Mac en een Windows omgeving zijn
# veel relaxer met bestandsnaam m.b.t. spaties, hoofdletters en
# een mengeling van beide, maar dit geldt niet voor Linux, bovendien
# zijn bestanden in een Linux omgeving hoofdletter gevoelig.
$file_name=str_replace("'", "_", $file_array['name']);
$file_name=str_replace(" ", "_", $file_array['name']);
$file_name=stripslashes ($file_name);
$file_name=trim($file_name);
$file_name=strtolower($file_name);
echo "path: " .$file_array['tmp_name'] . "<br>\n";
echo "name: " .$file_name . "<br>\n";
echo "type: " .$file_array['type'] ."<br>\n";
echo "size: " .$file_array['size'] ."<br>\n";
# gebruik de functie afbeeldingen (zie filter.php) om te
# controleren of het om een afbeelding gaat.
# de waarde van $test wordt 1 indien het een afbeelding betreft,
# in alle andere gevallen is $test leeg.
$test = afbeeldingen($file_name);
if ($test !=""):
echo $file_name . " dit is een afbeelding<br>";
if (is_uploaded_file($file_array['tmp_name'])) {
move_uploaded_file($file_array['tmp_name'], "$file_dir/$file_name") or die ("Couldn't copy");
echo "Afbeelding staat op de server<br><br>";
// voeg de locatie + omschrijving van de afbeelding toe in de database
$afbeelding = "images/" . $file_name;
$query = "INSERT INTO tut_afbeelding (ID, naam, job, plaats, hobby, omschrijving, afbeelding) VALUES ('', '$_POST[naam]', '$_POST[job]', '$_POST[plaats]', '$_POST[hobby]', '$_POST[omschrijving]','$afbeelding')";
if(!mysql_db_query($dbname,$query,$db)) die(mysql_error());
echo $afbeelding . " is toegevoegd aan de database met als omschrijving : <br>";
echo $_POST[omschrijving] ;
}
endif;
if ($test ==""):
echo $file_name . " dit is geen afbeelding en wordt daarom niet op de server geplaatst<br>\n";
endif;
}
endif;
mysql_free_result($Recordset1);
mysql_free_result($Recordset2);
?>
endif;
// Deze procedure wordt aangeroepen nadat men op verzenden heeft gedrukt
if ($go =="go"):
# Deze procedure zordt ervoor dat de afbeeldingen
# op je server worden geplaatst en tevens in je
# mysql database.
// bepaal de huidige directory
$hello = getcwd();
# hier komen de afbeeldingen, als je
# het script in de directory hallo hebt geinstalleerd
# dan worden de afbeeldingen in hallo/images/
# geplaatst.
$file_dir = ($hello . "/images/");
# we moeten natuurlijk wel zeker weten
# dat de directory bestaat. Dit controleren wij
# met de opdracht is_dir via de volgende routine :
if (is_dir ($file_dir)) {
print "<br><br>++directorty bestaat";
} else {
print "<br><br>--Directory bestaat nog niet" . $file_dir;
$newpage = $file_dir;
echo ("<br>we gaan daarom de directory aanmaken");
mkdir ($newpage, 0777);
}
// toon de systeem datum
echo date("m/d/y G.i:s");
echo ("<br><br>");
# Ik heb besloten om $_FILES als een array te
# laden, zodat je (eventueel) meer afbeeldingen via
# een formulier op je server kunt plaatsen.
foreach($_FILES as $file_name => $file_array) {
# Verander de bestandsnaam zodat het een geldig bestandsnaam wordt
# in een Linux omgeving. (Een Mac en een Windows omgeving zijn
# veel relaxer met bestandsnaam m.b.t. spaties, hoofdletters en
# een mengeling van beide, maar dit geldt niet voor Linux, bovendien
# zijn bestanden in een Linux omgeving hoofdletter gevoelig.
$file_name=str_replace("'", "_", $file_array['name']);
$file_name=str_replace(" ", "_", $file_array['name']);
$file_name=stripslashes ($file_name);
$file_name=trim($file_name);
$file_name=strtolower($file_name);
echo "path: " .$file_array['tmp_name'] . "<br>\n";
echo "name: " .$file_name . "<br>\n";
echo "type: " .$file_array['type'] ."<br>\n";
echo "size: " .$file_array['size'] ."<br>\n";
# gebruik de functie afbeeldingen (zie filter.php) om te
# controleren of het om een afbeelding gaat.
# de waarde van $test wordt 1 indien het een afbeelding betreft,
# in alle andere gevallen is $test leeg.
$test = afbeeldingen($file_name);
if ($test !=""):
echo $file_name . " dit is een afbeelding<br>";
if (is_uploaded_file($file_array['tmp_name'])) {
move_uploaded_file($file_array['tmp_name'], "$file_dir/$file_name") or die ("Couldn't copy");
echo "Afbeelding staat op de server<br><br>";
// voeg de locatie + omschrijving van de afbeelding toe in de database
$afbeelding = "images/" . $file_name;
$query = "INSERT INTO tut_afbeelding (ID, naam, job, plaats, hobby, omschrijving, afbeelding) VALUES ('', '$_POST[naam]', '$_POST[job]', '$_POST[plaats]', '$_POST[hobby]', '$_POST[omschrijving]','$afbeelding')";
if(!mysql_db_query($dbname,$query,$db)) die(mysql_error());
echo $afbeelding . " is toegevoegd aan de database met als omschrijving : <br>";
echo $_POST[omschrijving] ;
}
endif;
if ($test ==""):
echo $file_name . " dit is geen afbeelding en wordt daarom niet op de server geplaatst<br>\n";
endif;
}
endif;
mysql_free_result($Recordset1);
mysql_free_result($Recordset2);
?>
écht niemand ??
Sorry voor het newbie-gehalte....
Verder kun je de resize functie gewoon aanroepen met resize_foto($file_dir.'/'.$file_name). Wel even de goede locatie instellen in de functie resize_foto (of nog een parameter voor de locatie maken!).
Gewijzigd op 01/01/1970 01:00:00 door RT
Sorry voor het onoverzichtelijk script.
Ik ben serieus newbie hier...
Dus het is NIET zo dat ik de resize-functie ( bovenaan ) gewoon even tussen de regels voeg van het uploadscript ? Het probleem is dat ik niet weet wáár het uploadscript eindigd...ik zit zwaar in de problemen tussen jullie, ik weet het...