上传文件时,MAX_FILE_SIZE怎么无效?

lingye 2006-06-02 05:29:14
根据PHP手册说明,加了MAX_FILE_SIZE后,“可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦”。但是我无论怎么测试,在传打文件时,还是得等到文件完全传到服务器的临时目录后,才能检测到超过大小的限制。
难道我误解了PHP手册的说明?还是我的代码有问题?
代码如下:
<form name="uploadFileForm" method="post" action="upload.php" enctype="multipart/form-data"
<input type="hidden" name="MAX_FILE_SIZE" value="4096000">
<input name="userfile" id="userfile" type="file" />
<input type="submit" value="传送" id="Button1" />
</form>
...全文
1547 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gdj 2006-06-04
  • 打赏
  • 举报
回复
前端检测的目前只有一种情况可以做到,就是ie上传图片时可以提前得到文件大小。别的文件类型或是别的浏览器都无法在上传前得到大小。
Gdj 2006-06-04
  • 打赏
  • 举报
回复
MAX_FILE_SIZE是php提出来的标准。但ie和ff都没有采用。
-神仙- 2006-06-02
  • 打赏
  • 举报
回复
这个确实是个麻烦
没啥好的办法
lingye 2006-06-02
  • 打赏
  • 举报
回复
目的就是为了避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦
lingye 2006-06-02
  • 打赏
  • 举报
回复
好像都一样

那我现在想实现类似于客户端检测,不知道有没有其它方法(不包括需要改浏览器安全级别的)
lingye 2006-06-02
  • 打赏
  • 举报
回复
啊,我下一个NS试试
Gdj 2006-06-02
  • 打赏
  • 举报
回复
这种前端的东西和浏览器有很大关系。
Gdj 2006-06-02
  • 打赏
  • 举报
回复
你换个浏览器试试?比如ns。这个不能在ie和firefox下测试,不支持这个功能。
lingye 2006-06-02
  • 打赏
  • 举报
回复
上传的过程:
1。上传到临时目录
2。转移临时文件到指定目录:move_uploaded_file

按照PHP手册的说明,是不是在第一步之前就可以知道文件的大小是否超过了MAX_FILE_SIZE??
而我的测试结果是,在第一步后才知道。。。

所以我不知道是我的理解错了,还是我的程序有误
lingye 2006-06-02
  • 打赏
  • 举报
回复
问题是我传大于4M的文件,它还是照旧上传,等上传好后,才返回值为2的$_FILES['userfile']['error']。没有因为超过了MAX_FILE_SIZE,而不会上传
Gdj 2006-06-02
  • 打赏
  • 举报
回复
超过你定义的大小的话直接就上传失败了。根本不会上传,还要大小干什么。
lingye 2006-06-02
  • 打赏
  • 举报
回复
楼上的没有明白我的意思
目前我已经确定max_file_size能够控制上传文件的大小
关键是:PHP手册说明,加了MAX_FILE_SIZE后,“可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦”,但实际上我测试的还是要等到文件上传完毕后才能检测到大小

我的目的是想,如说明中解释的:“不必等待文件传完后,才发现文件太大”。
juzibaby 2006-06-02
  • 打赏
  • 举报
回复
你定义了4M怎么检测啊,晕,你设置4个字节,然后测试

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧