Locatie van plaatje in db zetten
Ik heb een werkend uploadscriptje wat een plaatje upload via een formulier naar de /tmp dir op de server(lokaal) en vervolgens het plaatje wegschrijft naar een andere dir met een nieuwe naam.
Dit is het script:
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
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
<?php
//upload2dir.php
echo "<html>\n",
"<head>\n",
"<title>Voeg een foto toe aan de winkel</title>\n",
"</head>\n",
"<body>\n";
if (!isset($_POST['do_action']))
{
echo "<b>Selecteer een afbeelding</b><form action='{$_SERVER['PHP_SELF']}' method='post' enctype='multipart/form-data'>\n",
"<tr><input type='file' name='userfile' /></tr />\n",
"<input type='hidden' name='MAX_FILE_SIZE' value='40000' />\n",
"<input type='submit' name='do_action' value='Upload' />\n",
"</form>\n";
}
else
{
// You may also use if (is_uploaded_file($_FILES['userfile']['tmp_name']))
// IMO using if isset is an identical test
if (isset($_FILES['userfile']['tmp_name']))
{
// In this line I'm examining the file size and the MIME type of the file
// to verify that the file is in the acceptable size range and is a jpeg
// image. MIME type testing isn't foolproof, it is possible to spoof this.
// The size testing, however, is not spoofable.
if (($_FILES['userfile']['size'] <= 40000) && ($_FILES['userfile']['type'] == 'image/jpeg' || $_FILES['userfile']['type'] == 'image/pjpeg'))
{
// Give the file a new name to prevent one user from overwriting files
// uploaded by another. mktime(), which creates a UNIX timestamp in
// addition to the user name is good for this.
$new_file_name = mktime().'.jpg';
// $_SERVER['DOCUMENT_ROOT'] will provide an absolute path to the base directory
// fill in the rest of the path from there, if necessary.
// echo the value of $_SERVER['DOCUMENT_ROOT'] to do this!
$file_path = '.\wijnwinkel\images\shop\n_'.$new_file_name;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].$file_path))
{
echo "Toevoegen is succesvol verlopen!<br /><br />\n";
echo 'De afbeelding: '.$_FILES['userfile']['name'].' ('.$_FILES['userfile']['size'].") Bytes is toegevoegd<br /><br />\n";
//echo "Renamed: $new_file_name<br />\n";
echo "Klik <a href='brengweg.php' target='_self'>hier</a> om nog een foto toe te voegen<br /><br />\n";
echo "<a href='javascript:window.close()'>Venster sluiten</a><br /><br />\n"; }
else
{
echo 'Toevoegen heeft gefaald: Mogelijk bent u niet gemachtigd om bestanden toe te voegen.';
}
}
else
{
echo 'Toevoegen heeft gefaald: afbeeldingen mogen niet qua bestandsgrootte niet groter zijn dan 40kb. en dienen van het .JPG formaat te zijn';
}
}
else
{
echo 'Toevoegen heeft gefaald: Er is geen geldig bestand toegevoegd';
}
}
echo " </body>\n",
"</html>";
?>
//upload2dir.php
echo "<html>\n",
"<head>\n",
"<title>Voeg een foto toe aan de winkel</title>\n",
"</head>\n",
"<body>\n";
if (!isset($_POST['do_action']))
{
echo "<b>Selecteer een afbeelding</b><form action='{$_SERVER['PHP_SELF']}' method='post' enctype='multipart/form-data'>\n",
"<tr><input type='file' name='userfile' /></tr />\n",
"<input type='hidden' name='MAX_FILE_SIZE' value='40000' />\n",
"<input type='submit' name='do_action' value='Upload' />\n",
"</form>\n";
}
else
{
// You may also use if (is_uploaded_file($_FILES['userfile']['tmp_name']))
// IMO using if isset is an identical test
if (isset($_FILES['userfile']['tmp_name']))
{
// In this line I'm examining the file size and the MIME type of the file
// to verify that the file is in the acceptable size range and is a jpeg
// image. MIME type testing isn't foolproof, it is possible to spoof this.
// The size testing, however, is not spoofable.
if (($_FILES['userfile']['size'] <= 40000) && ($_FILES['userfile']['type'] == 'image/jpeg' || $_FILES['userfile']['type'] == 'image/pjpeg'))
{
// Give the file a new name to prevent one user from overwriting files
// uploaded by another. mktime(), which creates a UNIX timestamp in
// addition to the user name is good for this.
$new_file_name = mktime().'.jpg';
// $_SERVER['DOCUMENT_ROOT'] will provide an absolute path to the base directory
// fill in the rest of the path from there, if necessary.
// echo the value of $_SERVER['DOCUMENT_ROOT'] to do this!
$file_path = '.\wijnwinkel\images\shop\n_'.$new_file_name;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].$file_path))
{
echo "Toevoegen is succesvol verlopen!<br /><br />\n";
echo 'De afbeelding: '.$_FILES['userfile']['name'].' ('.$_FILES['userfile']['size'].") Bytes is toegevoegd<br /><br />\n";
//echo "Renamed: $new_file_name<br />\n";
echo "Klik <a href='brengweg.php' target='_self'>hier</a> om nog een foto toe te voegen<br /><br />\n";
echo "<a href='javascript:window.close()'>Venster sluiten</a><br /><br />\n"; }
else
{
echo 'Toevoegen heeft gefaald: Mogelijk bent u niet gemachtigd om bestanden toe te voegen.';
}
}
else
{
echo 'Toevoegen heeft gefaald: afbeeldingen mogen niet qua bestandsgrootte niet groter zijn dan 40kb. en dienen van het .JPG formaat te zijn';
}
}
else
{
echo 'Toevoegen heeft gefaald: Er is geen geldig bestand toegevoegd';
}
}
echo " </body>\n",
"</html>";
?>
Nu wil ik dat ik de locatie van het bestand ingevoerd wordt in de mysql tabel images die ik gemaakt heb:
Velden van de tabel:
img_id
pad.
Ik heb geprobeerd om een $query in te voegen nadat de kopieeropdracht uitgevoerd is maar hierdoor gaat mijn hele script op de loop en krijg ik een lawine aan fouten die ik met mijn kennis nog niet kan debuggen.
Kan iemand mij helpen om een sql-query in bovenstaande code op te nemen?
Ohja: ik gebruik een include met hierin
$host=**
$user**
$password
$DBname
$link=mysql_connect($host,$user,$password);
dus ik neem aan dat ik dit kan gebruiken om de connectie op te zetten?
Mijn dank zal groot zijn.
Lostchild
Er zijn nog geen reacties op dit bericht.