QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4280|回复: 12

上传文件大小控制

[复制链接]
发表于 2005-6-17 09:12:41 | 显示全部楼层 |阅读模式
linux + php + httpd

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

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

(问题出现在:如果要上传一个文件,系统是不是先把文件上传到硬盘然后检查他的大小?)
发表于 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.
[code:1]
define ('MAX_FILE_SIZE', '上传文件大小控制');

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

} else {

}
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2005-6-18 11:20:15 | 显示全部楼层
[quote:4cf915e3af="涩兔子"]两种方式:
1.<input type="hidden" name="MAX_FILE_SIZE" value="上传文件大小控制">

2.
[code:1]
define ('MAX_FILE_SIZE', '上传文件大小控制');

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

} else {

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

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

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

使用道具 举报

发表于 2005-6-18 12:19:47 | 显示全部楼层
Axin你的假设是不成立的

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

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

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

使用道具 举报

发表于 2005-6-18 12:23:16 | 显示全部楼层
[code:1]
<input type="hidden" name="MAX_FILE_SIZE" value="上传文件大小控制">
// 这是第一种方法,和第二种方式不一样
[/code:1]

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

使用道具 举报

 楼主| 发表于 2005-6-18 12:28:48 | 显示全部楼层
[quote:65216484dd="涩兔子"]Axin你的假设是不成立的

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

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

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

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

使用道具 举报

发表于 2005-6-18 14:29:51 | 显示全部楼层
那就使用基于客户端的认证
回复

使用道具 举报

发表于 2005-6-27 15:29:25 | 显示全部楼层
对,javascript在这方面还是做得到的。在客户端就封杀掉,提高效率。
回复

使用道具 举报

发表于 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.
回复

使用道具 举报

发表于 2005-7-11 05:09:21 | 显示全部楼层
谢谢色兔版主,我去读读看
回复

使用道具 举报

发表于 2005-8-8 17:11:00 | 显示全部楼层
php。ini中的  max_execution_time
不过有条命令可以取消限制
set_time_limit (0)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 20:53 , Processed in 0.092180 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表