[php] checken van filesize VOOR het uploaden

Pagina: 1
Acties:
  • 116 views sinds 30-01-2008

  • js303
  • Registratie: April 2003
  • Laatst online: 01-08 22:19
voor zover ik weet is het niet mogelijk om te checken hoe groot een file is of van wat voor type, voordat je het ge-upload hebt.... heel erg onhandig eigenlijk dat je na het uploaden van een filmpje van 5 mb vervolgens moet constateren dat je niet meer dan 4 mb mag uploaden of dat de mimetype niet toegestaan is...

ik heb begrepen dat asp(.net) al kan checken hoe en wat voordat alle bytes zijn geupload.

1. klopt dit?
2. zijn er truuks om dit toch met php of desnoods perl dit te doen?

Verwijderd

is geheel niet mogelijk, mischien vragen aan de user?

  • Blaise
  • Registratie: Juni 2001
  • Niet online
met <input type="hidden" name="MAX_FILE_SIZE" value="10000000"> voorkom je iig dat ze achteraf pas horen dat het te groot was...

[ Voor 50% gewijzigd door Blaise op 01-05-2003 17:47 . Reden: oops ]


  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 17-08 10:28
Zou wel leuk zijn, maar volgens mij wordt het client-side geregeld dus denk niet dat het mogelijk is, ikzou het graag horen als iemand anders een andere oplossing heeft

Icons are overrated


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-08 19:22
Je zou het met een JavaScript kunnen oplossen. Je zult het clientside moeten oplossen, weet alleen niet wat ASP voor functies/mogelijkheden heeft om tijdens het uploaden te checken of de filesize te groot wordt dan jij wilt.

  • sirdupre
  • Registratie: Maart 2002
  • Laatst online: 27-04-2025
Blaise schreef op 01 May 2003 @ 17:46:
met <input type="hidden" name="MAX_FILE_SIZE" value="10000000"> voorkom je iig dat ze achteraf pas horen dat het te groot was...
Hiermee kun je inderdaad de maximale grootte opgeven van een bestand dat je gaat versturen. Met javascript zou je evt. de extensie kunnen controleren van het te uploaden bestand voor je daadwerkelijk de form laat submitten...

  • js303
  • Registratie: April 2003
  • Laatst online: 01-08 22:19
Met javascript zou je evt. de extensie kunnen controleren
je hebt ook nog van die mac wezens die niet weten wat extensies zijn. die noemen hun plaatjes bijv. "#### Picture of my dog / cat 50% ####"... dus.
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
ik kan ergens iets fout doen hoor maar het maakt geen zak uit of ik die waarde nu op 1000000 of op 1000 zet. eerst wordt de hele mikmak geupload en dan pas kan ik pas checken of ie goed is geupload.

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
Met het volgende scriptje kun je de filesize opvragen:
HTML:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<HTML>
<HEAD>
<SCRIPT>
function getFileSize (fileName) {
  if (document.layers) {
    if (navigator.javaEnabled()) {
      var file = new java.io.File(fileName);
      if (location.protocol.toLowerCase() != 'file:')
        netscape.security.PrivilegeManager.enablePrivilege(
        'UniversalFileRead'
        );
      return file.length();
    }
    else return -1;
  }
  else if (document.all) {
    window.oldOnError = window.onerror;
    window.onerror = function (err) {
      if (err.indexOf('utomation') != -1) {
        alert('file access not possible');
        return true;
      }
      else 
        return false;
    };
    var fso = new ActiveXObject('Scripting.FileSystemObject');
    var file = fso.GetFile(fileName);
    window.onerror = window.oldOnError;
    return file.Size;
  }
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formName">
<INPUT TYPE="file" NAME="fileName">
<BR>
<INPUT TYPE="button" VALUE="check file size"
       ONCLICK="alert(getFileSize(this.form.fileName.value))"
>
</FORM>
</BODY>
</HTML>


Maar het maakt (in case of IE) gebruik van het FSobject van windows dmv. ActiveX, eerst krijg je (afhankelijk van je IE security) een vraag of een ActiveX ding toegang tot je schijf mag krijgen, en daarna waarschijnlijk een melding van je Antivirussoftware.....

Maar goed, het is een antwoord op je vraag :P

  • js303
  • Registratie: April 2003
  • Laatst online: 01-08 22:19
"ALERT: MALICIOUS SCRIPT DETECTED".

magoed je hebt me gewaarschuwd :)
wel leuk eigenlijk z'n error

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
De HTTP client stuurt eerst de HTTP headers die aangeven wat de naam, grootte en het (MIME) type (?) van het bestand mee, voordat de feitelijke inhoud volgt. Een CGI module kan dus in principe al beslissen wat 'ie er mee wil doen, direct een antwoord terugsturen en vervolgens de verbinding verbreken.

Met PHP gaat het echter niet, omdat je PHP script pas uitgevoerd wordt wanneer de hele HTTP request binnen is. Je zult dus ofwel van een 'echte' CGI module gebruik moeten maken of een client-side oplossing moeten kiezen (en die combineren met een server-side oplossing voor security, uiteraard).

Verwijderd

http://nl.php.net/manual/en/function.filesize.php

doe toch allemaal niet zo simpel zeg, kijk eerst op php.net en lul dan verder

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 20-08 08:46
Verwijderd schreef op 01 May 2003 @ 20:59:
http://nl.php.net/manual/en/function.filesize.php

doe toch allemaal niet zo simpel zeg, kijk eerst op php.net en lul dan verder
quote daarvan:
Note: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.
Dan zit de TS nog met het probleem dat het eerst geupload moet worden. dus lees ff eers php.net en lul dan verder als het zinnig is

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22-08 10:45

mulder

ik spuug op het trottoir

Verwijderd schreef op 01 mei 2003 @ 20:59:
http://nl.php.net/manual/en/function.filesize.php

doe toch allemaal niet zo simpel zeg, kijk eerst op php.net en lul dan verder
of lees de draad eerst

[ Voor 85% gewijzigd door mulder op 01-05-2003 21:03 ]

oogjes open, snaveltjes dicht


Verwijderd

cybermans schreef op 01 mei 2003 @ 21:02:
[...]


quote daarvan:
Note: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.
Dan zit de TS nog met het probleem dat het eerst geupload moet worden. dus lees ff eers php.net en lul dan verder als het zinnig is
toet :+

je kan zelf ook nadenken

maak een upload formpje
HTML:
1
2
3
4
<form action=upload.php method=POST enctype="multipart/form-data">
Bestand: <input type=file name=file><BR>
<input type=submit name=submit value="Upload">
</form>


en dan upload.php

PHP:
1
2
3
4
5
6
7
8
9
10
11
if ($HTTP_POST_FILES[file][tmp_name] != "none") {
    $fp = @fopen($HTTP_POST_FILES[file][tmp_name],"r");
    if ($fp) {
        $size = filesize($HTTP_POST_FILES[file][tmp_name]);
        // de rfest
    }
    if (!fp) { echo"Kan het bestand niet openen"; }
}
if ($HTTP_POST_FILES[file][tmp_name] == "none") { 
    echo"Geen bestand geselecteerd";
}


ik gebruik dit scriptje ook, localhost EN online.

DUS niet zeiken jij..

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

[php] checken van filesize VOOR het uploaden

Systeem | Strava


Verwijderd

brakkie schreef op 01 May 2003 @ 21:09:
[php] checken van filesize VOOR het uploaden
hij is nog niet geupload, alleen verplaatst naar een temp map, daarna kan de user zeggen of hij echt geupload moet worden

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 01 May 2003 @ 21:08:

ik gebruik dit scriptje ook, localhost EN online.

DUS niet zeiken jij..
Als ik je een OW had kunnen geven voor onzin praten had je hem nu te pakken gehad :/

Dit is echt heel erg bot, maar misschien begrijp je het dan

[ Voor 11% gewijzigd door Glimi op 01-05-2003 21:14 ]


Verwijderd

Glimi schreef op 01 May 2003 @ 21:11:
[...]

Als ik je een OW had kunnen geven voor onzin praten had je hem nu te pakken gehad :/

Dit is echt heel erg bot, maar misschien begrijp je het dan
ik begrijp jou wel, maar hun mij niet. Ik gebruik dit script, en check de bestandsgrootte VOOR het definitief uploaden, zoals gevraagt. Dus ik help een user, en de rest zit te zeiken dat ik uit mn nek zwam. Nou, dan flikkeren ze maar een end op ook.

Houd me wel bezig met dingen waar ze mij wel geloven

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22-08 10:45

mulder

ik spuug op het trottoir

Hun begrijp PHP wel, jij begrijp hun niet. PHP is een serverside taal, daar heeft een client weinig aan. Bovendien praten volwassen mensen een stuk beleefder tegen elkaar... soms.

oogjes open, snaveltjes dicht


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
Verwijderd schreef op 01 May 2003 @ 21:16:
[...]


ik begrijp jou wel, maar hun mij niet. Ik gebruik dit script, en check de bestandsgrootte VOOR het definitief uploaden, zoals gevraagt. Dus ik help een user, en de rest zit te zeiken dat ik uit mn nek zwam. Nou, dan flikkeren ze maar een end op ook.

Houd me wel bezig met dingen waar ze mij wel geloven
:X

Hij is dan al geupload hoor ;)

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 21-08 18:44

LauPro

Prof Mierenneuke®

Verwijderd schreef op 01 May 2003 @ 21:10:
[...]
hij is nog niet geupload, alleen verplaatst naar een temp map, daarna kan de user zeggen of hij echt geupload moet worden
Ja en geuploaden kan niet, het is nog altijd geüpload |:(. Man, geef toch gewoon toe dat je fout zit..
edit:
Spuit 11 :X

[ Voor 5% gewijzigd door LauPro op 01-05-2003 21:20 ]

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

zmn schreef op 01 May 2003 @ 21:18:
[...]

:X

Hij is dan al geupload hoor ;)
bij jou wel, bij mij niet

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 20-08 08:46
dat zou dan wel een mega security leak zijn als die server al je files kan bekijken voordat je ze hebt open gestuurd. Zou betekenen dat ik vrolijk jouw wachtwoord files zou kunnen lezen. Maar gelukkig is het echt niet zo want remote files kunnen niet gecheckt worden en aangezien elke file die niet aanwezig is op de server remote is (jaja niet zeuren over netwerk mounts ed).

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
Verwijderd schreef op 01 May 2003 @ 21:20:
[...]
bij jou wel, bij mij niet
Op het moment dat ik op submit druk bij dat form word het geupload, daarom staat het toch al in de temp folder op de server :X

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 21-08 18:44

LauPro

Prof Mierenneuke®

Verwijderd schreef op 01 mei 2003 @ 21:20:
[...]
bij jou wel, bij mij niet
Ff een laatste reactie: als je een bestanden download, dan kopieeërt de client hem meestal van de temp-map nog naar de map waar die uiteindelijk moet komen te staan. Die laatste fase heet dan zeker ook 'downloaden'? |:(. Het proces dat op de server afspeelt noem ik iig geen uploaden meer, dat is alleen het verkeer dat je veroorzaakt als de browser het bestand post, klaar nu :).
edit:
Weer spuit 11 :X

[ Voor 5% gewijzigd door LauPro op 01-05-2003 21:25 ]

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Wat Fragmentation waarschijnlijk beschrijft is een situatie waarbij php lokaal en remote draait.

Who is John Galt?


  • johnny7
  • Registratie: November 2000
  • Laatst online: 07-11-2023
Hier stond onzin.....

[ Voor 116% gewijzigd door johnny7 op 01-05-2003 21:33 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
justmental schreef op 01 mei 2003 @ 21:27:
Wat Fragmentation waarschijnlijk beschrijft is een situatie waarbij php lokaal en remote draait.
Hoe stel je je dat voor? Kun je daar een voorbeeld van geven? :)

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Glimi schreef op 01 May 2003 @ 21:31:
Hoe stel je je dat voor? Kun je daar een voorbeeld van geven? :)
Ik zeg niet dat het een waarschijnlijke situatie is en ik spreek totaal geen php, maar het lijkt me goed mogelijk dat je een html form submit naar een lokaal php script welke de file size checked en het evt. doorstuurt naar een remote site. :)

Who is John Galt?


  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 20-08 08:46
@justmental en zelfs dan zou het niet waar zijn want de file wordt niet gecopieerd maar eerst in een http header ingepakt en dan weer uitgepakt uit de http header. Ja het is wel een beetje mierenneuken maar anders krijg je nooit een goede defenitie. En trouwens fragmentation zei dat het bij hem online was. Dan is mijn voorstel dat fragmentation ff een file van 100mb over een 56k verbinding gaat sturen en dan zijn php script gaat checken of hij werkelijk 24h (niet berekend maar gewoon ff voor de duidelijkheid) bezig is of dat het eerst gecheckt wordt

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
off-topic:
LauPro schreef op 01 May 2003 @ 21:18:
Ja en geuploaden kan niet, het is nog altijd geüpload
Pleur op! Straks moet ik ook "geë-maild" :X gaan schrijven zoals volgens het Nationaal Dictee. |:(

[ Voor 3% gewijzigd door Soultaker op 01-05-2003 21:34 . Reden: Schreef ik nog "geë-mailed" ipv "geë-maild" ]


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
justmental schreef op 01 mei 2003 @ 21:33:
[...]

Ik zeg niet dat het een waarschijnlijke situatie is en ik spreek totaal geen php, maar het lijkt me goed mogelijk dat je een html form submit naar een lokaal php script welke de file size checked en het evt. doorstuurt naar een remote site. :)
Dan is het in principe al verstuurd naar het lokale php script :)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
justmental schreef op 01 May 2003 @ 21:33:
Ik zeg niet dat het een waarschijnlijke situatie is en ik spreek totaal geen php, maar het lijkt me goed mogelijk dat je een html form submit naar een lokaal php script welke de file size checked en het evt. doorstuurt naar een remote site. :)
Tja, nu ben je wel heel erg krom aan het praten om de opmerkingen van Fragmentation recht te praten. Zelfs in die situatie is er immers een 'client' en een 'server', waarbij de 'client' nog altijd eerst de file naar de lokale 'server' zal moeten uploaden voordat 'ie de grote ervan kan checken.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Mjah is een beetje ontaard naar een rans flame topic.
Op z'n tijd ook wel eens leuk ;) als je hem afbreekt als het nog niet te erg is :)

Maar genoeg is genoeg.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Nog een verlate reactie van NextGeneration
Het gaat dus niet met javascript of normale html (vertel eens wat nieuws :)).

Er zijn wel wat opties, helaas ontbreekt me de tijd om ze te testen:
1. Gebruik een HTA.
- IE only.
- Misschien (ik denk van wel) security warnings.
2. Gebruik een Java-applet.

Dat zijn volgens mij de overige opties (2 vooral).
Pagina: 1

Dit topic is gesloten.