在实际的应用中,文件管理功能通常需要对用户上传的文件尺寸和类型做限制,这是上传下载模块的基础功能。对于上传文件尺寸的限制可以在客户端依靠JavaScript程序来实现,但同时也需要对WebServer的配置做必要的修改,下面分别介绍这两种方式。广州网站设计
7.2.1 JavaScript文件尺寸验证
打开前面创建的文件上传界面文件upload.html,添加文件尺寸判断函数。修改后的页面代码如下:广州网站设计
- <html xmlns="undefined">
- <head>
- <title>文件上传页面</title>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <meta name="description" content="文件上传页面" />
- <script language="JavaScript" type="text/JavaScript">
- function getFileSize(filename) {
- //var filename = document.all('fileup').value; //获得上传文件的物理路径
- if (filename == '') {
- alert("你还没有浏览要上传的文件");
- return false;
- }
- try {
- var fso, f, fname, fsize;
- var flength = 4; //设置上传的文件最大值(单位:kb),超过此值则不上传
- fso = new ActiveXObject("Scripting.FileSystem-
- Object");
- f = fso.GetFile(filename); //文件的物理路径
- fname = fso.GetFileName(filename); //文件名(包括扩展名)
- ffsize = f.Size; //文件大小(bit)
- fsizefsize = fsize / 1024;
- if (fsize > flength) {
- alert("上传的文件到小为:" + fsize + "kb,\n超过最大限度" + flength + "kb,
- 不允许上传 ");
- return false;
- } else {
- alert("允许上传,文件大小为:" + fsize + "kb");
- }
- } catch(e) {
- alert(e);
- return false;
- }
- return true;
- }
- </script>
- </head>
- <body bgcolor="#FFFFFF">
- <center>
- <form enctype="multipart/form-data" action="upload.php" method="post">
- <table border="1" width="55%" id="table1" cellspacing=0>
- <tr>
- <td colspan="2">
- <p align="center">上传文件:
- </td>
- </tr>
- <tr>
- <td width="10%"></td>
- <td width="71%"><input type="hidden" name="max_file_size"
- value="100000"> <input name="userfile" type="file"> <input
- type="submit" value="上传文件"
- onclick="getFileSize(document.all('userfile').value)"></td>
- </tr>
- </table>
- </form>
- </center>
- </body>
- </html>
使用上面的程序上传一个大尺寸的文件,通过测试程序是否正确来判断文件尺寸。上传后浏览器弹出提示文件尺寸过大的信息,验证文件尺寸的检测有效。广州网站建设
注意:上面的代码做文件尺寸检测是依赖于ActiveXObject("Scripting.FileSystemObject");这个是IE控件完成的,一些情况下需要降低IE的安全级别才能正常运行。广州网站建设



