upload scriptje
Als webmaster van de site van onze voetbalvereniging willen wij natuurlijk veel foto's plaatsen.
Omdat sommige foto's misschien te groot zijn en voor het gemak dacht ik aan een upload script.
Ik heb iets gevonden en met een paar aanpassingen dacht ik het te doen werken, tot..........
De foto selecteren lukt prima en na verzenden kom je weer netjes op de zelfde pagina terecht en er wordt tevens een email gestuurd naar ons met de gegevens over de foto e.d.
Alleen.......de foto is nergens!?!?!?
edit, oeps, scriptje vergeten!
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
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
<form action="upload_rcz.php" method="post" enctype="multipart/form-data">
<table width="300" align="center" cellspacing="0" cellpadding="3" style=" border-top:2px solid #000000; border-left: 2px solid #000000; border-bottom: 2px solid #000000; border-right: 2px solid #000000;">
<caption align="top"><b>
Up-load hier uw foto
</b></caption>
<tr>
<td width="50%">
Naam:<br/><input type="text" name="naam" size="40"
/></td>
</tr>
<tr>
<td width="50%">
E-mailadres:<br/><input type="text" name="email" size="40"
/></td>
</tr>
<tr>
<td width="50%">Opmerkingen:<br /><textarea rows="4" name="opmerkingen" cols="40"></textarea></td>
</tr>
<tr>
<td width="50%">
<label for="file">Bestandsnaam:</label><br/>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Verzend" />
</td>
</tr>
</table>
</form></center>
<table width="300" align="center" cellspacing="0" cellpadding="3" style=" border-top:2px solid #000000; border-left: 2px solid #000000; border-bottom: 2px solid #000000; border-right: 2px solid #000000;">
<caption align="top"><b>
Up-load hier uw foto
</b></caption>
<tr>
<td width="50%">
Naam:<br/><input type="text" name="naam" size="40"
/></td>
</tr>
<tr>
<td width="50%">
E-mailadres:<br/><input type="text" name="email" size="40"
/></td>
</tr>
<tr>
<td width="50%">Opmerkingen:<br /><textarea rows="4" name="opmerkingen" cols="40"></textarea></td>
</tr>
<tr>
<td width="50%">
<label for="file">Bestandsnaam:</label><br/>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Verzend" />
</td>
</tr>
</table>
</form></center>
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
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
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$naam= $_POST["naam"];
$email= $_POST["email"];
$opmerking= $_POST["opmerkingen"];
if (($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Fout Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Grootte: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Tijdelijk Bestand: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " bestaat al! ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"/upload" . $_FILES["file"]["name"]);
echo "Opgeslagen in: " . "/upload" . $_FILES["file"]["name"];
}
}
}
$recipient="[email protected]";
$subject="File Upload Website RCZ";
$header="From: " . $email . "\r\n";
$mail_body ="Dit bestand is op " . date("d-m-Y") . " om " . date("H:i") . " uur verzonden door " . $naam ."\n\n";
$mail_body.="Naam: " . $naam ."\n";
$mail_body.="Opmerking: " . $opmerking ."\n";
$mail_body.="Bestandsnaam: " . $_FILES["file"]["name"] ."\n";
$mail_body.="Bestandstype: " . $_FILES["file"]["type"] . "\n";
$mail_body.="Bestandsgrootte: " . ($_FILES["file"]["size"] / 1024) . " Kb\n\n ---- Einde melding bestandsoverdracht ----";
mail($recipient,$subject,$mail_body,$header);
$relative_url = 'website.php';
header("Location: http://".$_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])
."/".$relative_url);
} else{
echo "Verkeerd type bestand";
}
?>
ini_set('display_errors', 1);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$naam= $_POST["naam"];
$email= $_POST["email"];
$opmerking= $_POST["opmerkingen"];
if (($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Fout Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Grootte: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Tijdelijk Bestand: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " bestaat al! ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"/upload" . $_FILES["file"]["name"]);
echo "Opgeslagen in: " . "/upload" . $_FILES["file"]["name"];
}
}
}
$recipient="[email protected]";
$subject="File Upload Website RCZ";
$header="From: " . $email . "\r\n";
$mail_body ="Dit bestand is op " . date("d-m-Y") . " om " . date("H:i") . " uur verzonden door " . $naam ."\n\n";
$mail_body.="Naam: " . $naam ."\n";
$mail_body.="Opmerking: " . $opmerking ."\n";
$mail_body.="Bestandsnaam: " . $_FILES["file"]["name"] ."\n";
$mail_body.="Bestandstype: " . $_FILES["file"]["type"] . "\n";
$mail_body.="Bestandsgrootte: " . ($_FILES["file"]["size"] / 1024) . " Kb\n\n ---- Einde melding bestandsoverdracht ----";
mail($recipient,$subject,$mail_body,$header);
$relative_url = 'website.php';
header("Location: http://".$_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])
."/".$relative_url);
} else{
echo "Verkeerd type bestand";
}
?>
Ik heb op de server een map "upload" gemaakt en deze cmod 777.
Wie weet wat er mis gaat?
Ik heb begrepen dat de upload geschiet naar een temp map en als het uploaden voltooid is zou hij in de map upload moeten staan.
Niet dus!
Gewijzigd op 01/01/1970 01:00:00 door Peter Arendse
Code (php)
1
2
3
2
3
<?php
move_uploaded_file($_FILES["file"]["tmp_name"], "/upload" . $_FILES["file"]["name"]);
?>
move_uploaded_file($_FILES["file"]["tmp_name"], "/upload" . $_FILES["file"]["name"]);
?>
Dat zou eerder zoiets moeten worden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if (is_uploaded_file ($_FILES['file']['tmp_name'])) {
if (move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/upload/' . $_FILES['file']['name'])) {
chmod ($_SERVER['DOCUMENT_ROOT'] . '/upload/' . $_FILES['file']['name'], 0644);
}
else {
echo 'verplaatsen mislukt';
}
}
else {
echo 'ongeldig bestand';
}
?>
if (is_uploaded_file ($_FILES['file']['tmp_name'])) {
if (move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/upload/' . $_FILES['file']['name'])) {
chmod ($_SERVER['DOCUMENT_ROOT'] . '/upload/' . $_FILES['file']['name'], 0644);
}
else {
echo 'verplaatsen mislukt';
}
}
else {
echo 'ongeldig bestand';
}
?>
(Ben zo terug, ff de hond uitlaten)
Groet,
Peter
regel 29 t/m 31 van je voorbeeld vervangen met de code uit mijn voorbeeld
[/voorkauwmodus]
;-))
/uploads/
--->
uploads/
Edit:
want je had dus:
/uploads . $bestandnaam
dat werkt dus niet want dan krijg je
/uploadblabla.jpg
Dus dat moet zijn
uploads/$bestandsnaam
want je had dus:
/uploads . $bestandnaam
dat werkt dus niet want dan krijg je
/uploadblabla.jpg
Dus dat moet zijn
uploads/$bestandsnaam
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP
Die document root hoeft er volgens mij helemaal niet (zit niet in mijn upload script tenminste :|).
Het probleem van Peter is (denk ik) dat hij dit doet:
Dan krijg je dus : /uploadsbestand.jpg
Dus dat moet
zijn denk ik
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP
if {
$jan =(heeft een $ajax_hart);
$jan komt in mijn testament!;
}else{
jammer $jan je bet AZ related en blijft aan het eind met lege handen staan:
[/function]
;-)))))))
@ Peter: ik woon in Alkmaar, maar heb absoluut niets met voetbal in het algemeen en AZ in het bijzonder ;-) Maar ik ga er van uit dat het nu dus werkt. Mooi zo!
Ik zag wel in de mail die ik mij toe laat sturren dat de jpeg opeens pjpeg heet?!?!?
Zie mail:
Dit bestand is op 17-03-2008 om 22:00 uur verzonden door Peter Arendse
Naam: Peter Arendse
Opmerking: Test de foto upload
Bestandsnaam: papa-icebox.jpg
Bestandstype: image/pjpeg
Bestandsgrootte: 21.478515625 Kb
---- Einde melding bestandsoverdracht ----
__________ NOD32 2953 (20080317) Informatie __________
Dit bericht is gecontroleerd door het NOD32 Antivirus Systeem.
http://www.nod32.nl
P.s . Dat van die functie was grapje hoor, en ook dat zal wel fout gecoded zien.
edit:
Jan, ik heb jou stukje code geplaatss, maar de map upload blijft leeg.
Ik heb de vraag ook op een ander forum geplaatst en daar zeggen ze dat de map niet in de root mag staan, maar waar zou ik hem dan moet plaatsen?
Ik heb van mijn provider alleen toegang tot de plek waar ik de files van de website plaats of in een databse?!?
Gewijzigd op 01/01/1970 01:00:00 door Peter Arendse
Misschien heb je erwat aan als je dit bekijkt. Dit uploads script gebruik ikzelf, het is vast en zeker niet het beste dat er te krijgen is maar het werkt wel ;)
Ik heb jou file opgeslagen en ge-include en krijg dan deze melding:
Parse error: syntax error, unexpected T_VARIABLE in /www/htdocs/rczy/upload.php on line 50
Edit: Nog een leuke gevonden, het script explodeerd alle tekens van de bestandsnaam los, pakt het laatste teken (op een al rare constructie) en gaat daar dan mee verder om bijvoorbeeld de extensie er vanaf te halen. Lekker onmogelijk.
Gewijzigd op 01/01/1970 01:00:00 door Niels Janssen
De schrijver van het boek gebruikte verschillendenamen voor de zelfde variabelen.
Ik heb het nu op de volgende manier:
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
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
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$naam= $_POST["naam"];
$email= $_POST["email"];
$commentaar= $_POST["commentaar"];
$doelbestandsnaam = "plaatje";
$pad = "/www/htdocs/rczy/upload/";
if (is_uploaded_file($_FILES['afbeelding']['tmp_name'])){
if ($_FILES['afbeelding']['size'] > 1000000) {
echo "De foto die u wilt versturen is groter dan 1Mb!";
exit;
}
if (!ereg("((.gif'|.jpg)$)", $_FILES['afbeelding']['name'], $extensie)) {
echo " U probeert een bestand te versturen dat geen .gif of .jpg bestand is!";
exit;
}
if (!move_uploaded_file($_FILES['afbeelding']['tmp_name'], $pad.$doelbestandsnaam.$extensie[0])) {
echo "De foto kan niet verplaatst worden!";
exit;
}
echo " De foto ".$_FILES['afbeelding']['name']." is geupload naar onze server";
$recipient="[email protected]";
$subject="File Upload Website RCZ";
$header="From: " . $email . "\r\n";
$mail_body ="Dit bestand is op " . date("d-m-Y") . " om " . date("H:i") . " uur verzonden door " . $naam ."\n\n";
$mail_body.="Naam: " . $naam ."\n";
$mail_body.="Opmerking: " . $commentaar ."\n";
$mail_body.="Bestandsnaam: " . $_FILES['afbeelding']['name'] ."\n";
$mail_body.="Bestandstype: " . $_FILES['afbeelding']['name'] . "\n";
$mail_body.="Bestandsgrootte: " . ($_FILES["afbeelding"]["size"] / 1024) . " Kb\n\n ---- Einde melding bestandsoverdracht ----";
mail($recipient,$subject,$mail_body,$header);
}else{
echo" Het uploaden van uw foto is mislukt!";
}
?>
ini_set('display_errors', 1);
error_reporting(E_ALL);
$naam= $_POST["naam"];
$email= $_POST["email"];
$commentaar= $_POST["commentaar"];
$doelbestandsnaam = "plaatje";
$pad = "/www/htdocs/rczy/upload/";
if (is_uploaded_file($_FILES['afbeelding']['tmp_name'])){
if ($_FILES['afbeelding']['size'] > 1000000) {
echo "De foto die u wilt versturen is groter dan 1Mb!";
exit;
}
if (!ereg("((.gif'|.jpg)$)", $_FILES['afbeelding']['name'], $extensie)) {
echo " U probeert een bestand te versturen dat geen .gif of .jpg bestand is!";
exit;
}
if (!move_uploaded_file($_FILES['afbeelding']['tmp_name'], $pad.$doelbestandsnaam.$extensie[0])) {
echo "De foto kan niet verplaatst worden!";
exit;
}
echo " De foto ".$_FILES['afbeelding']['name']." is geupload naar onze server";
$recipient="[email protected]";
$subject="File Upload Website RCZ";
$header="From: " . $email . "\r\n";
$mail_body ="Dit bestand is op " . date("d-m-Y") . " om " . date("H:i") . " uur verzonden door " . $naam ."\n\n";
$mail_body.="Naam: " . $naam ."\n";
$mail_body.="Opmerking: " . $commentaar ."\n";
$mail_body.="Bestandsnaam: " . $_FILES['afbeelding']['name'] ."\n";
$mail_body.="Bestandstype: " . $_FILES['afbeelding']['name'] . "\n";
$mail_body.="Bestandsgrootte: " . ($_FILES["afbeelding"]["size"] / 1024) . " Kb\n\n ---- Einde melding bestandsoverdracht ----";
mail($recipient,$subject,$mail_body,$header);
}else{
echo" Het uploaden van uw foto is mislukt!";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Peter Arendse