>  기사  >  백엔드 개발  >  关于PHP上传的问题

关于PHP上传的问题

WBOY
WBOY원래의
2016-06-23 14:03:10684검색

move_uploaded_file 函数
上传文件

现在的要求是可以上传任意个文件
但是总的文件的大小不能超过5M

该怎么做呢??


回复讨论(解决方案)

上传文件大小的限制一般在php.ini和httpd.conf配置文件里有修改,比如php.ini里有
upload_max_filesize = 8M
post_max_size = 10M
memory_limit = 20M
这类的设置,在httpd.conf里有
LimitRequestBody 10485760    
这类设置

不过你在PHP文件里可以直接判断上传文件大小,比如判断$_FILES["file"]["size"]如果大于5M就不move_uploaded_file 移动。

上传文件大小的限制一般在php.ini和httpd.conf配置文件里有修改,比如php.ini里有
upload_max_filesize = 8M
post_max_size = 10M
memory_limit = 20M
这类的设置,在httpd.conf里有
LimitRequestBody 10485760    
这类设置

不过你在PHP文……

总的文件大小~~不是单个,好像不对吧

上传的同时记录相应的文件上传信息(按照用户,用数据库或文件 记录上传文件的总大小或用户上传每个文件的大小)

之后做相应判断不是可以?

确认 php.ini 中
session.upload_progress.enabled = on
session.upload_progress.cleanup = off

你可以在
$_SESSION["upload_progress_laruence"]["content_length"]
中得到上传文件的总大小

我想你不会排斥 php 5.4 吧?

上传的同时记录相应的文件上传信息(按照用户,用数据库或文件 记录上传文件的总大小或用户上传每个文件的大小)

之后做相应判断不是可以?

说的有道理,但是似乎我这需求可能无解,主要是上传附件用来发送邮件的,一次这么多,

比如第一次你可以总共传19M
第二次依旧可以总共传19M
就算放在数据库也不好判断

确认 php.ini 中
session.upload_progress.enabled = on
session.upload_progress.cleanup = off

你可以在
$_SESSION["upload_progress_laruence"]["content_length"]
中得到上传文件的总大小

我想你不会排斥 php 5.4 ……
算了,php版本自己不能改的~客户的服务器~

你应该是单个用户的上传总大小吧,在数据库中记录比较好,每个用户加个上传总大小字段,每次对比和更新。

引用 3 楼 ohmygirl 的回复:上传的同时记录相应的文件上传信息(按照用户,用数据库或文件 记录上传文件的总大小或用户上传每个文件的大小)

之后做相应判断不是可以?

说的有道理,但是似乎我这需求可能无解,主要是上传附件用来发送邮件的,一次这么多,

比如第一次你可以总共传19M
第二次依旧可以总共传19M
就算放在数据库也不好判断
      ……
也就是每次发送邮件的附件不能大于5M,很好判断啊,数据库记录上传总大小,不能大于5M,每次发送文件后清空为0重新计算。

楼主位内容说错了,不是5M,是一次发送邮件的附件总大小不得超过20M~

算了,php版本自己不能改的~客户的服务器~
那也总不至于加法也不会做了吧?

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.