文件上传问题

时间:2010-05-07 07:48:09

标签: php file-upload

我正在开发一个基于PHP的票务管理系统。在创建故障单时,可以上传附件。

我希望每个文件上传一个限制(比如10 MB) 为了实现这一点,我计划以下 -
1.在php.ini中设置

post_max_size = 10M 

2.在接收POST的PHP脚本中 由于文件大于post_max_size,$ _FILES []将为空。但是如果大小超过10M,我仍然可以检查内容长度标题并丢弃上传。

在测试时,我尝试上传1 GB的文件并分析了http流量,这就是我发现的。

- >整个1 GB数据首先临时上传到服务器,并在http请求完成后丢弃。虽然我无法确切地找到文件的保存位置(因为它不在服务器的临时目录中),但我的http流量分析器显示浏览器确实向服务器发送了1 GB的数据。

- > PHP脚本执行仅在完成http请求后开始(即在上传整个1 GB后)

现在我有两个问题:
a)人们可能通过尝试上传大文件来利用我的服务器带宽,无论如何我将不得不放弃 b)更糟糕的是, 如果有人开始上传一个巨大的文件(比如100 GB),那么整个100 GB的数据会首先暂时上传到服务器,这意味着在那段时间内,它会占用我服务器上的大量内存。

这是什么常见的解决方案。 我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:3)

您是否尝试过使用Apache指令LimitRequestBody