Toon posts:

[HTML/Form]input type=file volledig pad bewaren.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een MySQL-tabel die ik benader via php.
Om de gebruiker data te kunnen laten wijzigen, maak ik gebruik van een form.
Niets spannends tot nu toe.

Het gaat om een intranet en een klanten info systeem. Niets ingewikkeld, gewoon simpel en eenvoudig.
Nu is er ook een tabel 'Offertes' en ik deze tabel wil ik een veld hebben waar het pad naar de werkelijke offerte in komt te staan. Dit zal iets zijn als x:/pad/offertes/blabla.doc.
Nu dacht ik handig te zijn en hiervoor het input type 'file' te gebruiken, zodat er een blader knop komt en het gehele pad in het tekstvakje wordt geplaatst.
Het is niet nodig dat het document geupload wordt.
Dit werkt redelijk alleen wordt niet het gehele pad opgeslagen alleen de bestandsnaam omdat in de POST-VAR alleen de bestandsnaam staat.

Hoe kan ik wel het gehele pad bewaren? Het kan zijn dat ik daarvoor het file-type niet kan mis/ge bruiken, maar hoe dan wel, zonder al te ingewikkelde (java)scripts?

  • sQuarecoW
  • Registratie: Juli 2003
  • Laatst online: 10-02 10:06
je kan een javascriptje maken die de inhoud van het veld kopieert naar een ander (hidden) veld misschien?

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Een hidden field de value van de file-field geven met javascript?

:'( Spuit 11 :X

Volgens mij was het niet mogelijk om met javascript een file-field aan te passen ivm security-issues (zou handig zijn, met javascript automatisch files laten uploaden :+), maar misschien kun je hem wel leeggooien? :?

[ Voor 65% gewijzigd door Osiris op 09-10-2006 13:42 ]


  • Setragasj
  • Registratie: Augustus 2001
  • Laatst online: 12-02 13:23

Setragasj

is using radars to communicate

Osiris schreef op maandag 09 oktober 2006 @ 13:41:
Een hidden field de value van de file-field geven met javascript?

:'( Spuit 11 :X

Volgens mij was het niet mogelijk om met javascript een file-field aan te passen ivm security-issues (zou handig zijn, met javascript automatisch files laten uploaden :+), maar misschien kun je hem wel leeggooien? :?
Het is wel mogelijk om de value uit te lezen van een file field, maar niet te beïnvloeden.. Het is dus wel mogelijk om het volledige pad naar een hidden field te verplaatsen via javascript.

<Typ een persoonlijk bericht>


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Setragasj schreef op maandag 09 oktober 2006 @ 14:20:
[...]


Het is wel mogelijk om de value uit te lezen van een file field, maar niet te beïnvloeden.. Het is dus wel mogelijk om het volledige pad naar een hidden field te verplaatsen via javascript.
Maar hoe voorkom je dan dat het bestand geupload wordt?

Hmm, als je nou gewoon eens de enctype niet op "multipart/form-data" zet, maar gewoon weglaat, dan stuurt ie toch geen bestand mee? :P

Verwijderd

Topicstarter
Een bestand niet uploaden is makkelijk dan een bestand wel uploaden ;)
Inderdaad 'multipart/form-data' weglaten en niets op de server doen met de FILES-VARS.

Ik zal morgen het proberen met het hidden veld, daar had ik zelf ook nog niet aan gedacht.

Bedankt.

Paul

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op maandag 09 oktober 2006 @ 16:24:
Een bestand niet uploaden is makkelijk dan een bestand wel uploaden ;)
Inderdaad 'multipart/form-data' weglaten en niets op de server doen met de FILES-VARS.
Euhm, de client upload het bestand (met de goeie enctype that is :+) sowieso, of je nou wat met de FILES-vars doet of niet ;)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:06

Janoz

Moderator Devschuur®

!litemod

Pad wordt niet meegestuurd naar de server omdat je daar helemaal niks mee te maken hebt. Daarnaast is de file input tag nogal afgeschermd omdat het nogal een security issue is. Het is dus heel goed moegelijk dat hetgeen jij wilt niet kan. Het is sowieso niet mogelijk om een 'standaard' waarde in te voeren.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

je kunt het input veld met type file buiten je form zetten (niet helemaal netjes...) en dan wordt hij niet geupload.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Janoz schreef op maandag 09 oktober 2006 @ 17:15:
Daarnaast is de file input tag nogal afgeschermd omdat het nogal een security issue is. Het is dus heel goed moegelijk dat hetgeen jij wilt niet kan. Het is sowieso niet mogelijk om een 'standaard' waarde in te voeren.
HTML:
1
2
3
<input type="file" id="file"><br>
<input type="text" id="text"><br>
<input type="button" value="CliQue" onclick="document.getElementById('text').value = document.getElementById('file').value;">


Read-rechten heb je in ieder geval wel in Fx 1.5.0.7 :)

Verwijderd

Topicstarter
Bedankt allemaal,

Ik heb het opgelost met een hidden field en een klein beetje javascript, zoals Osiris al voorstelde.
HTML:
1
2
3
4
5
6
<form name="offerteForm" action="/intranet/blabla.php" METHOD="POST" onSubmit="swapValue();">
<input type="file" id="_document" name="_document" size="50" maxlength="250"><br />
<input type="hidden" name="document" id="document" value="">
<input type="submit" value="Wijzigen" >
<input type="reset" value="Wissen" >
</form>


JavaScript:
1
2
3
4
5
6
7
8
9
10
    <script type="text/javascript" language="javascript">
    //<![CDATA[
    function swapValue()
    {
      var doc = document.getElementById('document');
      var _doc = document.getElementById('_document');
      doc.value = _doc.value
     }
    //]]>
    </script>

Bij het wijzigen toon ik het pad naar het bestand als gewone tekst onder de file box, zodat in ieder geval duidelijk is wat er is opgeslagen.

Het is me nog niet duidelijk of het bestand ook wordt ge-upload ook al doe ik er niets mee. Het submitten gaat razendsnel, dus voor mijn gevoel wordt er niet ge-upload. Maar ik zal de tempdir van IIS6 eens bekijken. ;)

Groeten
Paul
Pagina: 1