[php] info uit tijdelijk bestand halen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Tijdens een upload wordt een tijdelijk bestand op de server geplaatst.
Om te achterhalen welk bestand dit is zoek in de betreffende directory naar het laatst toegevoegde bestand.

Nu wil ik van dit bestand wat gegevens weten, maar hoe doe ik dit?!
Zo wil ik dus de originele bestandsnaam eruit halen (kan dat?!) en de uiteindelijke grootte.

Nu gebruik ik dus http://nl2.php.net/manual/en/ref.exif.php en dan nu vooral exif_imagetype omdat het hier om afbeeldingen gaat.

Het type bestand staat er wel in en ook als het een afbeelding is staan de afmetingen erin. Ik neem dus aan dat op de een of andere manier je er ook achter kunt komen wat de originele bestandsnaam is en de totale grootte (bytes).

Dit kun je naderhand (na het uploaden) wel uitlezen met $_FILES['field']['...'] maar ik wil het dus al tijdens het uploaden kunnen gebruiken. (file upload progress so to speak)

Thanks

[ Voor 10% gewijzigd door Verwijderd op 19-10-2004 15:50 ]


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
* T-MOB vraagt zich af wat je precies aan het doen bent...

Gaat het hier om één en hetzelfde script?? Of lees je die data met een ander script uit. Bij mijn weten voert PHP namelijk in chronologische volgorde zijn syntax uit. Je kunt dan ook de exif_data pas aanspreken op het moment dat het bestand binnen is. Maar goed ik ben geen PHP-guru, dus allicht heb ik het helemaal mis.

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Dit gaat sowieso niet werken. Je kunt nooit garanderen dat het laatst toegevoegde bestand ook degene is die de gebruiker op dat moment aan het uploaden is. Verder is het inderdaad onmogenlijk om van een bestand dat op dat moment geschreven wordt de orginele bestandsnaam en uiteindelijke grootte te bepalen. Deze zijn namelijk alleen bekend bij de webserver. De webserver geeft ze, zodra het bestand klaar is, door aan php.

Dat jij tijdens het uploaden al wel het plaatje type en de afmetingen kunt achterhalen komt omdat deze gegevens in het plaatje staan aan het begin. Gif, png en jpeg hebben in de eerste bytes van het bestand bepaalde labels staan die aangeven dat het een plaatje van dat type is en er staat ergens aangegeven wat de afmetingen zijn. In die header (die dus niet hetzelfde is als bijvoorbeeld een http header oid, maar gewoon onderdeel van het bestand is) staat niks over de bestandsgrootte en orginele bestands naam.

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


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik kan dat wel redelijk bepalen, omdat het niet een druk bezocht systeem is en ik de sessie bestanden eruit filter (die beginnen met sess_). Over het algemeen klopt het dus wel.

Jammer dat die informatie idd nog niet bekend is.
Maar als de webserver die informatie wel heeft, kun je daar op geen mogelijkheid achter komen!?

Bestandsnamen achterhaal ik wel met javascript, alleen de bestandsgrootte lukt niet omdat ik dan het FileSystemObject nodig heb en dat werkt niet op mijn PC, dus kan ik er niet vanuit gaan dat het bij een gebruiker wel gaat werken.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Een FileSystemObject? We hebben het hier toch nog gewoon over php? Of gaat dit over javascript. Ik neem aan dat je zelf wel kunt bedenken waarom een webpagina geen gegevens over de bestanden op de hardeschijf van de gebruiker kan achterhalen he ;).

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


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
FileSystemObject is idd Javascript.
De bestandsnaam wordt dus VOOR het verzenden clientside achterhaald.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is zeker niet mogelijk om het tijdelijke bestand te beinvloeden tijdens of voordat het uploadproces start (zodat je bijvoorbeeld de naam kan voorzien van een session_id of iets dergelijks).
Pagina: 1