Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

Dubbele afbeelding uploaden naar server.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een code gemaakt om 2 afbeeldingen te uploaden en nog enkele andere informatie in een dataase te zetten. De afbeeldingen worden op de server gezet, de lokatie ervan in de database. Verder zijn in hetzelfde formulier nog andere tekstvelden die ingevuld worden.
Nu lukt het me niet om de 2 afbeeldingen up te loaden als ik de uploadmogelijkheid in een formulier zet waar ook tekst-invoervelden zijn.
2 afbeeldingen tegelijk uploaden zonder andere velden gaat wel goed. Ik heb volgens mij wel alles goed staan, maar toch worden de afbeeldingen niet op de server gezet.

Iemand een tip?

Een gestripte versie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form method="post" action="'.$_SERVER['PHP_SELF'].' enctype=\"multipart/form-data\">
<input type='text' name='verzonnen'>
<input type='hidden' name='MAX_FILE_SIZE' value='100000'>
<input type='file' name='bestand' size='20'>
<input type='file' name='bestand1' size='20'>
<input type='text' name='fake'>
<input type="submit" name="submit" value="Verzend!">
</form>

--
als er gesubmit is:

<?
echo "Naam: ".$_FILES["bestand1"]["name"]."<br>";
copy($_FILES["bestand1"]["tmp_name"], "../upload/test/".$_FILES["bestand1"]["name"]);
echo "<img src='../upload/test/".$_FILES["bestand1"]["name"]."'><br><br>misch";
unlink($_FILES["bestand1"]["tmp_name"]);
echo "Naam: ".$_FILES["bestand"]["name"]."<br>";
copy($_FILES["bestand"]["tmp_name"], "../upload/test/".$_FILES["bestand"]["name"]);
echo "<img src='../upload/test/".$_FILES["bestand"]["name"]."'>";
unlink($_FILES["bestand"]["tmp_name"]);
?>


Grts Fer,

  • Noork
  • Registratie: Juni 2001
  • Niet online
Lijkt me een gevalletje van debuggen. Ik mis nu trouwens wel informatie over hoe je de extra velden afvangt, dat lijkt me het meest belangrijke als je zegt dat het met alleen de file upload wel werkt. Bovenstaande code werkt dus neem ik aan?

Of zeg je nu dat bovenstaande code niet werkt, doordat je de 'fake text' hebt toegevoegd?

Verwijderd

Topicstarter
Bovenstaande code werkt niet. Ik heb de input type='text' erbij gezet om te laten zien dat er voor en na de upload van de afbeeldingen verschillende input type='text' velden zijn. Het is natuurlijk 1 formulier.

Het lukt me met al die velden niet om de afbeeldingen naar de server te sturen.
Heeft het misschien iets te maken dat ik en tekst, en afbeeldingen naar de header stuur?

  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik heb bovenstaande code getest en iets aangepast. (br's toegevoegd voor overzichtelijkheid in de output) Ik krijg het hier gewoon werkend. Een probleem waar ik tegenaan liep was de max file size. Wellicht heb jij die ook te laag staan voor bepaalde files. Test het, en kijk eens wat er in de FILES array staat.

Ik krijg b.v. zoiets terug:
code:
1
2
3
4
5
6
7
8
    [bestand1] => Array
        (
            [name] => characters_cheat_sheet.png
            [type] => image/png
            [tmp_name] => C:\temp\phpC114.tmp
            [error] => 0
            [size] => 122223
        )


Zie hier een overzicht van error codes: http://www.weberdev.com/ViewArticle/File-upload-with-PHP

code:
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
<form enctype="multipart/form-data" action="upload.php" name="frm_afb_upload" id="frm_afb_upload" method="POST"> 
    <input type="text" name="verzonnen"/> <br/> 
    <input type="hidden" name="MAX_FILE_SIZE" value="999999999"/> 
    <input type="file" name="bestand1" size="20"/><br/> 
    <input type="file" name="bestand2" size="20"/> <br/>
    <input type="text" name="fake"/>
    <input type="submit" name="Verzend" value="Verzend!"/> 
</form>

<?
echo "<pre>";
print_r($_POST);
print_r($_FILES);
echo "<pre>";

if($_POST) { 
    $path = "";
    echo "Naam: ".$_FILES['bestand1']['name']."<br/>"; 
    $res1 = copy($_FILES['bestand1']['tmp_name'], $path.$_FILES['bestand1']['name']); 
    echo "<img src='".$path.$_FILES["bestand1"]["name"]."'><br><br>misch"; 
    //unlink($_FILES["bestand1"]["tmp_name"]); 
    echo "Naam: ".$_FILES['bestand2']['name']."<br>"; 
    $res2 = copy($_FILES['bestand2']['tmp_name'], $path.$_FILES['bestand2']['name']); 
    echo "<img src='".$path.$_FILES['bestand2']['name']."'>"; 
    //unlink($_FILES["bestand"]["tmp_name"]); 
}
?>


p.s. volgens mij is het niet nodig om je temporary upload file te verwijderen (unlinken)

[ Voor 13% gewijzigd door Noork op 21-07-2008 21:45 ]


Verwijderd

Topicstarter
Bedankt Noork. De plaatjes worden nu netjes op de server geplaatst. Het probleem lag bij het enctype. Ik had 2 keer \ gebruikt. Hier ging het mis.

Grtzz

  • Noork
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op maandag 21 juli 2008 @ 22:02:
Bedankt Noork. De plaatjes worden nu netjes op de server geplaatst. Het probleem lag bij het enctype. Ik had 2 keer \ gebruikt. Hier ging het mis.

Grtzz
Aha, zag dat ook al, maar dacht dat het een snelle copy paste betrof :)
Pagina: 1