Multiple upload
Ik heb onderstaande code voor de upload van mijn bestanden. De bestanden worden in de betreffende map opgeslagen, het probleem is alleen dat alleen de eerste bestandsnaam wordt opgeslagen in mijn SQL. Helaas kom ik er zelf niet uit waar dit aan kan liggen.
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
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
<?php
$upload_dir= '../upload';
$messages = array();
if(isset($_FILES['file']['tmp_name'])) {
for($i=0; $i < count($_FILES['file']['tmp_name']);$i++) {
if(!is_uploaded_file($_FILES['file']['tmp_name'][$i])) {
$messages[] = 'Afbeelding mag niet leeg zijn!';
} else {
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"][$i]);
$extension = end($temp);
if ((($_FILES["file"]["type"][$i] == "image/gif")
|| ($_FILES["file"]["type"][$i] == "image/jpeg")
|| ($_FILES["file"]["type"][$i] == "image/jpg")
|| ($_FILES["file"]["type"][$i] == "image/pjpeg")
|| ($_FILES["file"]["type"][$i] == "image/x-png")
|| ($_FILES["file"]["type"][$i] == "image/png"))
&& in_array($extension, $allowedExts)) {
if(file_exists($upload_dir.'/'.$_FILES['file']['name'][$i])) {
$messages[] = $_FILES['file']['name'][$i]. 'Afbeelding bestaat al';
} else {
move_uploaded_file($_FILES["file"]["tmp_name"][$i],
"../upload/" . $_FILES["file"]["name"][$i]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"][$i];
$sql = mysql_query ("
INSERT INTO album (a_image, a_id)
VALUE('". $_FILES['file']['name'][$i]."', '31')
");
if($sql) {
$succes = 'Project is toegevoegd! Na 3 seconden wordt je teruggestuurd naar het overzicht.';
} else {
$error = 'Project is niet toegevoegd!';
}
}
} else {
$messages[] = $_FILES['userfile']['name'][$i]. 'formaat niet toegestaan';
}
}
}
}
?>
$upload_dir= '../upload';
$messages = array();
if(isset($_FILES['file']['tmp_name'])) {
for($i=0; $i < count($_FILES['file']['tmp_name']);$i++) {
if(!is_uploaded_file($_FILES['file']['tmp_name'][$i])) {
$messages[] = 'Afbeelding mag niet leeg zijn!';
} else {
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"][$i]);
$extension = end($temp);
if ((($_FILES["file"]["type"][$i] == "image/gif")
|| ($_FILES["file"]["type"][$i] == "image/jpeg")
|| ($_FILES["file"]["type"][$i] == "image/jpg")
|| ($_FILES["file"]["type"][$i] == "image/pjpeg")
|| ($_FILES["file"]["type"][$i] == "image/x-png")
|| ($_FILES["file"]["type"][$i] == "image/png"))
&& in_array($extension, $allowedExts)) {
if(file_exists($upload_dir.'/'.$_FILES['file']['name'][$i])) {
$messages[] = $_FILES['file']['name'][$i]. 'Afbeelding bestaat al';
} else {
move_uploaded_file($_FILES["file"]["tmp_name"][$i],
"../upload/" . $_FILES["file"]["name"][$i]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"][$i];
$sql = mysql_query ("
INSERT INTO album (a_image, a_id)
VALUE('". $_FILES['file']['name'][$i]."', '31')
");
if($sql) {
$succes = 'Project is toegevoegd! Na 3 seconden wordt je teruggestuurd naar het overzicht.';
} else {
$error = 'Project is niet toegevoegd!';
}
}
} else {
$messages[] = $_FILES['userfile']['name'][$i]. 'formaat niet toegestaan';
}
}
}
}
?>
Gewijzigd op 06/08/2014 11:36:49 door - Ariën -
Aangezien je geen foutafhandeling rond je query gebouwd hebt is het natuurlijk zoeken naar een speld in een hooiberg. Doe dat eerst eens en kijk of er een melding komt, of dat de query gewoon wel wordt uitgevoerd, maar er niets wordt ingevoerd (primary key of unieke index op a_id bijvoorbeeld?).
Ik krijg de volgende melding als ik 2 bestanden upload:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
Stored in: upload/549995_571431302875504_761029119_n.jpg
Er ging iets fout met de query: (INSERT INTO album (a_image) VALUE('549995_571431302875504_761029119_n.jpg'))
Stored in: upload/bg_2.jpg
Er ging iets fout met de query: (INSERT INTO album (a_image) VALUE('bg_2.jpg'))
Er ging iets fout met de query: (INSERT INTO album (a_image) VALUE('549995_571431302875504_761029119_n.jpg'))
Stored in: upload/bg_2.jpg
Er ging iets fout met de query: (INSERT INTO album (a_image) VALUE('bg_2.jpg'))
Heb de volgende query gebruikt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sSQL = "INSERT INTO album (a_image)
VALUE('". $_FILES['file']['name'][$i]."')";
$rResult = mysql_query($sSQL);
if($rResult === false)
{
echo("Er ging iets fout met de query: (".$sSQL.")");
}
else
{
while($aRow = mysql_fetch_assoc($rResult))
{
echo $aRow['kolom'];
}
}
VALUE('". $_FILES['file']['name'][$i]."')";
$rResult = mysql_query($sSQL);
if($rResult === false)
{
echo("Er ging iets fout met de query: (".$sSQL.")");
}
else
{
while($aRow = mysql_fetch_assoc($rResult))
{
echo $aRow['kolom'];
}
}
mysql_error) en je weet wat je moet aanpassen.
Ben je al een hele stap verder. Nu alleen nog de mysql error bekijken ( Wederom bedankt, begrijp alleen niet helemaal waar ik mysql_error moet toevoegen.
Op de plek waar je je foutmelding toont, over dat je query de fout in liep.
mysql_error() zonder argumenten volstaat.
Bedankt Ger, heb het inmiddels voor elkaar gekregen :)
Het is wel zo leuk om die oplossing ook hier even te vermelden.
Waarschijnlijk van VALUE gemaakt VALUES