Looking for a client side script that will check the file size of a user selected file (i.e., image) before it is uploaded to the server. Possible in Javascript? Looking for a Javascript/PHP solution or a simple PHP solution if possible. Thanks greatly!
php is all server side scripting, so you are out of luck in that regard. Somebody correct me if I'm wrong, but there is no way to check a file size in php prior to upload. You can set a parameter in your php.ini file that I believe is MAX_UPLOAD or MAX_FILE_UPLOAD to 1 megabyte or another arbitrary number if you want. If someone tried to upload a larger file, they would get an error. On the javascript/vbscript side, I believe that you are looking for information that is not available via those scripting languages either. Your only option would be java if you wanted to check something client side. I could be wrong, though. It's happened before (twice) .
Java applets have a pretty strict security policy in place. It prevents them from doing nasty things to the computers of people who view them. So I'm not sure if they would be able to check an image's size.
http://ro.php.net/features.file-upload with PHP and it's not that difficult... if you still don't understand i'll help you
Hi! You can use a server-side solution. Use $_SERVER['CONTENT_LENGTH'] after trying to upload file. This variable returns size of uploaded file, even if upload failed if(isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['CONTENT_LENGTH']>2097152) $error = 'Upload FAILED, file is too large !'; This method work fine for all cases of errors when upload file , even if filesize is greater than MAX_FILE_SIZE, upload_max_filesize or post_max_size (from php.ini) Good Luck! && Sorry for my bad english.
RussellMD, Wont that only check the file size AFTER the file has already been uploaded to the temporary folder? Doesnt that defeat the purpose? Dinesh
JavaScript is not able to do it, it's forbidden to access file system. However with VBScript on ActiveX object, you can check for file size with client side scripting. Hope the code below helps: <head><script> function A() { var oas = new ActiveXObject("Scripting.FileSystemObject"); var d = document.a.b.value; var e = oas.getFile(d); var f = e.size; alert(f + " bytes"); } </script> </head> <body> <form name="a"> <input type="file" name="b"> <input type="button" name="c" value="SIZE" onClick="A();"> </form> </body> </html> HTML:
activex / vbscript is not cross browser and reliant on security limitations. checking server side is daft - if you have a limit of say, 5mb and somebody uploads a 5.2 mb file, it means waiting for the whole upload to complete so that php/asp can say 'too big, try again'. http://digitarald.de/project/fancyupload/ uses mootools and a really tiny flash control - check the demos. achieves desired check and much more, including progress report, multiple uploads etc. flash is likely to be installed for at least 90% of your visitors and the solution is semantic anyway - uses a normal form upload which can work via POST if flash is not there.
<?php define("MAX_SIZE",2000000); if($_FILES["userfile"]["size"] < MAX_SIZE){ if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path)) { echo "The file has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } }else{ echo "There was an error uploading the file, please try again!"; } ?> here the code.. i hv used this and found an error.... in case of file size greater than the limit the application stops and displays white page.. no error... how to fix that problem... any one can help ... thanx
you can do it by javascript's flash extension if flash player plugin is installed. otherwise file have to be uploaded via ajax and then you can return the file size from php response, though i don't like this one...
using java script the an error occur "active x object code is undefined" ... so if u have any sample code than plz provide.. thnx
I found this on the forums --> http://forums.digitalpoint.com/showthread.php?t=1461121 There is an example on how to do it with Javascript, it works for browsers other than MSIE (tested on Chrome and Firefox, shoud work ok in Safari too). You can mix it with the ActiveX Object to get a cross-browser solution
hey mate; anybody can help me to find Ajax and PHP uploading script. I found a lot of scripts but required CGI. I don't know how to install CGI.
<script language="javascript" type="text/javascript"> function getFileSize() { try { var b = document.getElementById('<%=fupload.ClientID %>'); var f = -1; // alert(navigator.appName); // to get the browser name var oas; try { /* ----------------Internet Explorer ---------------- */ if (navigator.appName == "Microsoft Internet Explorer") { oas = new ActiveXObject("Scripting.FileSystemObject"); var d = b.value; var e = oas.getFile(d); f = e.size; if ((f / (1024 * 1024)) > 2) { alert('Please check the file size '); return false; } else { return true; } } /* ---------------- Other ---------------- */ else { var filesize = b.files[0].size; // b.files[0].Size; alert((filesize / (1024 * 1024)) + " MB"); if ((filesize / (1024 * 1024)) > 2) { alert('Please check the file size '); return false; } else { return true; } // return true; } } catch (err1) { alert('Tools -> Internet Options -> choose the Security tab Click the Custom Level button Enable the following settings: Run ActiveX controls and plug-ins Initialize and script ActiveX controls not marked as safe.'); return false; } } catch (err) { alert(err.ToString); return false; } } </script>