Vraag & Antwoord

Webprogrammeren & scripting

Bestandsgroote controleren met javascript

8 antwoorden
  • Is het mogelijk om met javascript een bestand op grootte te controleren. Ik heb namelijk een form gemaakt waarmee je een bestand kunt uploaden. De maximale toegestane grootte wil ik zelf in kunnen stellen. Dit lukt ook wel met PHP maar het formulier wordt eerst inclusief bestand overgestuurd. Vervelend als je maar 100k toe wil laten en iemand upload een bestand van 1mb. Je krijgt dan pas een foutboodschap als het hele bestand verstuurt is. Bedankt alvast weer
  • Nee dat is niet mogelijk. De HTML input tag biedt daar geen mogelijkheden voor en javascript is zo afgeschermd dat je geen rechten hebt op het filesystem van de client. De enige mogelijkheden die ik zie zijn een custom plugin of java-applet. Of gebruik maken van ActiveX (IE only), bijvoorbeeld het filesystemobject. Met andere woorden, als het niet voor een intranet is of een webbased applicatie zou ik het maar laten bij wat het is en dat is uploaden en server-side de controle uitvoeren.
  • Okay, is duidelijk, bedankt
  • [code:1:f9faae6647] <HTML> <HEAD> <SCRIPT> function getImageDimension (imgURL, loadHandler) { var img = new Image(); img.onload = loadHandler; if (document.layers && location.protocol.toLowerCase() != 'file:' && navigator.javaEnabled()) netscape.security.PrivilegeManager.enablePrivilege( 'UniversalFileRead' ); img.src = imgURL; } 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; } } function showImageDimensions () { alert(this.width + 'x' + this.height); } </SCRIPT> <SCRIPT> function checkImageDimensions (fileName) { var imgURL = 'file:///' + fileName; getImageDimension(imgURL, showImageDimensions); } </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))" > <BR> <INPUT TYPE="button" VALUE="check image dimensions" ONCLICK="checkImageDimensions(this.form.fileName.value)" > </FORM> </BODY> </HTML> [/code:1:f9faae6647] werkt dit ook niet, kwam het tegen op een site via google, maar heb het niet getest..
  • [quote:445227d219="thatsmej"] werkt dit ook niet, kwam het tegen op een site via google, maar heb het niet getest..[/quote:445227d219] Dat zal ongetwijfeld werken (niet getest overigens). Maar hier maak je dus gebruik van de technieken die ik hierboven ook vermeld. En voor standaard gebruik op internet dus meestal niet echt echt een optie.
  • valt me eigenlijk nu pas op dat het java is ipv javascript shame on me :oops:
  • [quote:36db0c51f3="thatsmej"]valt me eigenlijk nu pas op dat het java is ipv javascript shame on me :oops:[/quote:36db0c51f3] Zeker shame on you... dit is namelijk absoluut geen java. Het is gewoon javascript waarin óf een java óf een activex object wordt aangeroepen.
  • Nee, dat ActiveX is zeker niet de bedoeling. Je beperkt hiermee weer een groep bezoekers die ActiveX niet aan hebben staan. Ik blijf bij Javascript en PHP.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.