Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Gekloonde file wordt niet meegestuurd.

Pagina: 1
Acties:
  • 188 views sinds 30-01-2008
  • Reageer

  • Wouterke89
  • Registratie: Oktober 2006
  • Laatst online: 27-11 19:36
Ik heb devolgende functie in javascript:
code:
1
2
3
4
5
6
7
function addfile(element){
e2=element.cloneNode(true);
e2.disabled=true;
e2.name="file[]";
document.getElementById('loader').appendChild(e2);
element.value="";
}


En hetvolgend form:
code:
1
2
3
4
5
6
7
<form enctype="multipart/form-data" action="main.php?p=images" method="post" id="loader">
<input type="hidden" name="action" id="action" value="upload" />
Afbeeldingen uploaden: <input type="submit" value="Starten">
<script src="upload.js"></script>
<br /><input type="file" size="70" onChange="addfile(this);" />
<br/>
</form>


De bedoeling is dus dat er meerdere bestanden in 1 keer verzonden kunnen worden. Maar als ik het form submit is de PHP-waarde $_FILES helemaal leeg.

De bestanden worden dus niet verstuurd, en ik zie niet waarom. De gekloonde file's zijn wel degelijk childs van het form loader.

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Kun je wel zomaar meerdere files versturen via een form? Ik dacht dat e.e.a. beveiligd was...

P.S. is dit wat? http://the-stickman.com/w...th-a-single-file-element/

[ Voor 39% gewijzigd door Rekcor op 14-09-2007 13:41 . Reden: p.s. toegevoegd ]


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

je kan nietzomaar een cloneNode() proberen volgens mij op een input type=file.
De betere manier zou volgens mij zijn om gewoon je eerste input type=file netjes een name te geven en bij een onchange() een nieuwe input type=file[] toe te voegen met dezelfde naam.

Stop uploading passwords to Github!


  • Wouterke89
  • Registratie: Oktober 2006
  • Laatst online: 27-11 19:36
Die link had ik eerst gebruikt, en die werkte ook niet, dus ik dacht: laten we het zelf doen: en het resultaat is: 7 lijntjes code ipv die 1.6KB.
Volgens deze link zou het toch moeten werken: http://be2.php.net/manual....file-upload.multiple.php

Verwijderd

Volgens mij worden disabled controls per definitie niet meegestuurd.

Dit doet wel iets uploaden, maar het scripting verhaal werkt uiteraard (nog) niet perfect.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
var_dump($_FILES);
?>
<script type="text/javascript">
function addfile(element)
{
    e2=element.cloneNode(true);
    //e2.disabled=true;
    e2.name="file[]";
    document.getElementById('loader').appendChild(e2);
    element.value="";
}
</script>
<form enctype="multipart/form-data" action="Test.php" method="post" id="loader">
    <input type="hidden" name="action" id="action" value="upload" />
    Afbeeldingen uploaden: <input type="submit" value="Starten">
    <br /><input type="file" size="70" onChange="addfile(this);" />
    <br/>
</form>

  • Wouterke89
  • Registratie: Oktober 2006
  • Laatst online: 27-11 19:36
Zoiets eenvoudig :)
Disabled items worden dus niet meegestuurd, ik vind er wel iets op.

Hartelijk dank voor de hulp

Verwijderd

Readonly elementen worden wel verstuurd, dus daar kan je naar kijken. Ik kreeg dit echter (nog) niet goed werkend.

  • Wouterke89
  • Registratie: Oktober 2006
  • Laatst online: 27-11 19:36
Opgelost zo:
code:
1
2
3
4
5
6
7
function addfile(element){
e2=element.cloneNode(true);
e2.name="file[]";
document.getElementById('hid').appendChild(e2);
document.getElementById('filelist').innerHTML+=element.value+"<br/>";
element.value="";
}


hid is een verborgen div in het form, en filelist, is een gewone div.

Nogmaals bedankt
Pagina: 1