用php直接写入磁盘

用php直接写入磁盘,php,file-upload,upload,Php,File Upload,Upload,我想创建一个不受php上传限制的上传脚本。 可能有一种情况,我需要上传2GB或更大的文件,而我不想将整个服务器的执行更改为32MB以上 有没有从php直接写入磁盘的方法 你会建议某人用什么方法来完成这项工作?我已经阅读了有关堆栈溢出的内容,但还没有完全找到我要做的事情 用PHP上传一个大于PHP允许限制的文件是不可能的,就是这么简单 可能的解决方法包括,不确定Flash和Javascript是否可以做到这一点——将原始文件“分割”成更小的块。简单的答案是,由于apache处理post数据的方式,

我想创建一个不受php上传限制的上传脚本。 可能有一种情况,我需要上传2GB或更大的文件,而我不想将整个服务器的执行更改为32MB以上

有没有从php直接写入磁盘的方法


你会建议某人用什么方法来完成这项工作?我已经阅读了有关堆栈溢出的内容,但还没有完全找到我要做的事情

用PHP上传一个大于PHP允许限制的文件是不可能的,就是这么简单


可能的解决方法包括,不确定Flash和Javascript是否可以做到这一点——将原始文件“分割”成更小的块。

简单的答案是,由于apache处理post数据的方式,您不能


如果您坚持要上传更大的文件,并且仍然使用php作为后端,那么您可以使用PHPSocketsAPI编写一个简单的文件上传接收器,并将其作为独立服务运行。可以在

找到一些好的细节,您可以基于PHP的套接字做一些有趣的事情。您是否考虑过用Java编写一个小程序来将文件上传到一个正在侦听的PHP守护进程?这在大多数专业的主机提供商上可能不起作用,但如果您运行自己的服务器,您可以让它工作。考虑以下顺序:

  • 小程序启动,向PHP发送请求以打开侦听套接字
  • (您可能需要用Java编写一个基本的web浏览器才能实现此功能)
  • Java小程序从文件系统读取文件,并通过在步骤1中创建的套接字将其上载到PHP

  • 这不是最干净的方法,但是如果你在PHP.ini文件中禁用PHP脚本超时,那么你可以做一些事情。

    虽然这是一篇老文章,但是当你通过google寻找用PHP处理大文件上传的解决方案时,你会很容易找到它。 我仍然不确定文件上传是否可能增加内存限制,但我认为很有可能。在寻找这个问题的解决方案时,我发现了矛盾的来源。PHP手册说明

    post_max_size:设置允许的post数据的最大大小。 此设置还影响文件上载。 若要上载大文件,必须使用此值 大于上传的最大文件大小。如果 内存限制由您的 配置脚本,内存限制也 影响文件上载。通常地 说起来,内存限制应该是 大于post_最大尺寸。()

    …这意味着您的内存限制应大于要上载的文件。但是,php.net上的另一位用户(alice dsl.com上的ragtime)表示:

    我不相信“记忆大小”应该是一个人的大小的神话 上传的文件。这些文件是 绝对不会被记住。。。 而是上传了每个1MB的数据块 存储在/var/tmp及更高版本下 在移动到之前在/tmp下重建 web/用户空间

    我正在运行一个只有64MB的linux设备 RAM,将内存限制设置为16MB 以及上传大小约为 100MB完全没有问题!()

    他报告了垃圾收集器的一些其他相关问题,但也说明了如何解决这些问题。如果这是真的,上传的文件大小可能会增加内存限制。(但是,请注意,另一件事可能是处理上载的文件-然后您可能必须将其加载到内存中)

    在我尝试用PHP处理大型文件上传之前,我写了这篇文章,因为我正在使用PHP或python来评估这项任务