[PHP] bestandsnaam tonen in formfield

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Als je een bestand submit met een form en je hebt als action $_SERVER[PHP_SELF],
hoe krijg je dan de originele input van een formfield te zien wanneer het een bestand betreft.

Bij $_POST is het niet zo moeilijk, maar bij een bestand slaat $_FILES["userfile"]["name'] alleen
de werkelijke bestandsnaam op, en niet het hele pad.
Voor de rest zou ik niet weten waar het opgeslagen zou zijn.
Hierdoor moet de user het bestand telkens opnieuw selecteren wanneer er bijvoorbeeld
iets anders in het form niet goed is, maar het bestand wel.

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je krijgt het exacte pad op de client pc helemaal niet door, dus dat kan je niet weten. ;) Je kan er misschien hooguit omheen werken met een Javascriptje, dat een hidden input aanpast wanneer de file-input aangepast wordt, en daarmee dus met die hidden input het volledige pad doorgeven.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Sowieso kun je als het goed is geen waarde setten in een <input type="file"> veld. Anders zou het wel erg makkelijk worden om bij iemand gevoelige data van zijn pc te trekken. Een windows password file staat bijvoorbeeld op een redelijk te voorspellen plek. Met een verstopt file-veld zou je die dan zo van iemands pc kunnen trekken.

Een oplossing voor je probleem is wellicht om als er een bestand is geüpload, dat tijdelijk ergens op te slaan als het formulier niet compleet is. Je stopt ter vervanging een hidden-field met de temp-naam in het formulier. Bij het definitief submitten verplaats je het tempbestand naar de juiste locatie.
Waar je wel rekening mee moet houden is dat er temp-bestanden achterblijven als mensen niet definitief submitten. Daar mag je dan nog wat creatiefs voor bedenken...

Regeren is vooruitschuiven