Heim  >  Artikel  >  Backend-Entwicklung  >  关于PHP下传的有关问题

关于PHP下传的有关问题

WBOY
WBOYOriginal
2016-06-13 11:17:46853Durchsuche

关于PHP上传的问题
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 中
session.upload_progress.enabled = on
session.upload_progress.cleanup = off

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

我想你不会排斥 php 5.4 吧?

------解决方案--------------------
你应该是单个用户的上传总大小吧,在数据库中记录比较好,每个用户加个上传总大小字段,每次对比和更新。
------解决方案--------------------
引用:
引用:上传的同时记录相应的文件上传信息(按照用户,用数据库或文件 记录上传文件的总大小或用户上传每个文件的大小)

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

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

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

也就是每次发送邮件的附件不能大于5M,很好判断啊,数据库记录上传总大小,不能大于5M,每次发送文件后清空为0重新计算。
------解决方案--------------------
引用:
算了,php版本自己不能改的~客户的服务器~

那也总不至于加法也不会做了吧?
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn