如果上传了之后再判断,那就没什么意义了,虽然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>