先判断要上传的文件的大小再上传文件

如果上传了之后再判断,那就没什么意义了,虽然php.ini里对上传文件的尺寸有了限定,但我想能不能先判断再copy,不然用户非法copy大文件就会占用很多的带宽。
请问如何来实现啊。
下面的
$_FILES['userfile']['size']
是用来确定已上传文件的大小,单位为字节

另外:
MAX_FILE_SIZE 隐藏字段必须在文件输入字段之前,且其值为接受文件的最大尺寸,单位为字节。
MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。

---------------------------------------------------------------

要多看文件操作函数库,filesize
---------------------------------------------------------------

 1<html><head>
 2<script>   
 3  
 4function getFileSize (fileName) {   
 5  
 6if (document.all) {   
 7window.oldOnError = window.onerror;   
 8window.onerror = function (err) {   
 9if (err.indexOf('utomation') != -1) {   
10alert('没有访问文件的权限');   
11return true;   
12}   
13else   
14return false;   
15};   
16var fso = new ActiveXObject('Scripting.FileSystemObject');   
17var file = fso.GetFile(fileName);   
18window.onerror = window.oldOnError;   
19return file.Size; }}   
20</script>
21</head>
22<body>
23<form name="formName"><input name="fileName" type="file"/><br/>
24<input onclick="alert(getFileSize(this.form.fileName.value))" type="button" value="查看文件字节大小"/><br/>
25</form></body>
26</html>

---------------------------------------------------------------

本人认为在上传之前可以使用js码实现,至于如何实现就要看老兄的功底了
---------------------------------------------------------------

$_FILES['userfile']['size']
取的是临时文件的大小。根据Http协议的机制来看,你只能判断临时文件的大小啊。
if($_FILES['userfile']['size']<1000){
copy(...);
}
---------------------------------------------------------------

给你段判断文件大小的代码:

 1<html><head>
 2<script>   
 3  
 4function getImageDimension (imgURL, loadHandler) {   
 5var img = new Image();   
 6img.onload = loadHandler;   
 7if (document.layers && location.protocol.toLowerCase() != 'file:' && navigator.javaEnabled())   
 8netscape.security.PrivilegeManager.enablePrivilege( 'UniversalFileRead'   
 9); img.src = imgURL;}   
10function getFileSize (fileName) {   
11if (document.layers) {   
12if (navigator.javaEnabled()) {   
13var file = new java.io.File(fileName);   
14if (location.protocol.toLowerCase() != 'file:')   
15netscape.security.PrivilegeManager.enablePrivilege(   
16'UniversalFileRead' );   
17return file.length(); }   
18else return -1; }   
19else if (document.all) {   
20window.oldOnError = window.onerror;   
21window.onerror = function (err) {   
22if (err.indexOf('utomation') != -1) {   
23alert('file access not possible');   
24return true;   
25}   
26else   
27  
28return false; };   
29var fso = new ActiveXObject('Scripting.FileSystemObject');   
30var file = fso.GetFile(fileName);   
31window.onerror = window.oldOnError;   
32return file.Size; }}   
33function showImageDimensions () {   
34alert(this.width + 'x' + this.height);}   
35</script>
36<script>   
37function checkImageDimensions (fileName) {   
38var imgURL = 'file:///' + fileName;   
39getImageDimension(imgURL, showImageDimensions);}   
40</script>
41</head><body>
42<form name="formName"><input name="fileName" type="file"/><br/>
43<input onclick="alert(getFileSize(this.form.fileName.value))" type="button" value="check file size"/></form></body>
44</html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus