Axin 发表于 2005-6-17 09:12:41

上传文件大小控制

linux + php + httpd

如果我想控制我上传的文件的大小,比如我上传的文件大于100M,系统就应该给出一个错误的警告,说文件过大。

但有一个问题,我的Linux系统硬盘空余空间只有150M,我怎么做到上面的要求?

(问题出现在:如果要上传一个文件,系统是不是先把文件上传到硬盘然后检查他的大小?)

jiangtao9999 发表于 2005-6-17 18:31:25

php.ini 里有相关的设置,但是不是先测大小再上传就不知道了………

建议使用 javascript 解决

涩兔子 发表于 2005-6-17 20:57:32

两种方式:
1.<input type="hidden" name="MAX_FILE_SIZE" value="上传文件大小控制">

2.

define ('MAX_FILE_SIZE', '上传文件大小控制');

if ( $_FILES['userfile']['size'] <= MAX_FILE_SIZE ) {

} else {

}

Axin 发表于 2005-6-18 11:20:15

两种方式:
1.<input type="hidden" name="MAX_FILE_SIZE" value="上传文件大小控制">

2.

define ('MAX_FILE_SIZE', '上传文件大小控制');

if ( $_FILES['userfile']['size'] <= MAX_FILE_SIZE ) {

} else {

}

你这能判断我上传的文件大小吗?请问你有没有这样一种假设:把文件上传上tmp目录以后计算其大小,然后再进行比较控制? 

据我上面的条件,我的tmp目录很受到限制。

打个比方,Linuxfans的服务器一共100G,那你一不小心上传了一个1T的文件的时候,你的代码能胜任?能判断其过大?然后报错。

涩兔子 发表于 2005-6-18 12:19:47

Axin你的假设是不成立的

因为PHP配置文件默认允许上传文件的大小只有几MB而已

而且基于web上传文件太大了就会超时

PHP上传文件的机制就是先将上传文件拷贝至tmp文件夹,然后进行判断,这样做很影响效率,建议使用JS进行基于客户端的有效认证

涩兔子 发表于 2005-6-18 12:23:16


<input type="hidden" name="MAX_FILE_SIZE" value="上传文件大小控制">
// 这是第一种方法,和第二种方式不一样


最好使用JS进行本地化认证,不要累坏了服务器

Axin 发表于 2005-6-18 12:28:48

Axin你的假设是不成立的

因为PHP配置文件默认允许上传文件的大小只有几MB而已

而且基于web上传文件太大了就会超时

PHP上传文件的机制就是先将上传文件拷贝至tmp文件夹,然后进行判断,这样做很影响效率,建议使用JS进行基于客户端的有效认证

这个假设当然是存在的。
我用的lighttpd+php,我的空间一共也只有几M,tmp目录也不会超过2M。一上传大文件,我的系统就Crash了,所以我必须对上传文件大小进行有效的限制。

涩兔子 发表于 2005-6-18 14:29:51

那就使用基于客户端的认证 :idea:

laser 发表于 2005-6-27 15:29:25

对,javascript在这方面还是做得到的。在客户端就封杀掉,提高效率。

Bill_huohuo 发表于 2005-7-9 03:28:20

但是如何编写javascript客户端认证呢?比如如何用javascript确定文件类型,大小。我只会用javascript确定图片文件的长和宽,但不知道其他任意类型的文件如何操作。

涩兔子 发表于 2005-7-9 12:02:22

请翻阅MSDN有关DHTML Object的

fileSize Property

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

Retrieves the file size.

Syntax

HTML N/A
Scripting [ iSize = ] object.fileSize

Possible Values

iSize String that receives the file size.

The property is read-only. The property has no default value.

Standards Information

There is no public standard that applies to this property.

Bill_huohuo 发表于 2005-7-11 05:09:21

谢谢色兔版主,我去读读看

我的主啊 发表于 2005-8-8 17:11:00

php。ini中的max_execution_time
不过有条命令可以取消限制
set_time_limit (0)
页: [1]
查看完整版本: 上传文件大小控制