如果我读取文件上传脚本,我几乎到处都看到以下代码行来读取文件内容
file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)
但遗憾的是无法真正理解它.有人可以帮助它实际意味着什么?
虽然你的帖子在你试图完成的内容中并不是太详细,但最重要的是,我将如何尝试提供解决问题的指导.
1.上传工作如何?
您必须首先了解上传如何使用PHP.您上传的文件将作为HTTP请求的正文部分发送.
然而,该身体部分可以被编码.一旦这样的编码可能multipart/form-data
,身体被分成单独的部分.然而,PHP会对此进行一些特殊处理,请参阅本答复的后面部分.
另一种方法是将文件本身完全未编码,作为PUT
请求的正文部分,例如发送XMLHttpRequest
.这将使您的代码实际工作,但再次,我们稍后再讨论.
2. PHP如何处理上传?
如果你使用PHP,PHP有一些特殊的魔力multipart/form-data
.如果您使用此内容,则内容php://input
将不可用,您必须使用该$_FILES
数组来处理上传.
另一方面,如果您想自己处理上传或使用PUT方法,并且您的上传不需要特殊处理,您只需阅读所有内容php://input
并以您喜欢的方式使用它们.
有关上传的更多详细信息,请参阅PHP手册.
3.如何从客户端提交文件?
有几种方法.最基本的方法是简单地创建一个表单,将该文件作为HTTP POST
上载提交,然后如上所述处理它.
如果你想要一个进度条,你可以像YUI上传者一样使用一些Flash .这个小文件仍会发送HTTP POST
,但您可以访问通过JavaScript上传的内容.
最后,如果您的浏览器支持HTML5文件API,您可以获取本地文件的内容并通过HTTP POST
或HTTP PUT
根据您的需要上传.有关详细信息,请参阅本教程.
4.调试问题
东西往往会破裂,所以你需要能够调试它.您选择的第一个武器是来自浏览器的某种网络转储.如果您使用Chrome,则会内置工具,对于其他浏览器,您可能需要下载一些扩展程序.
您需要查看请求并查看数据是否存在且编码是否正确.作为Web开发人员,您应该对HTTP有深入的了解,所以如果您没有阅读它.没有理由不知道HTTP.
如果您确定数据到达服务器端,则应学会调试PHP.首先,看看你的超级球.你发送的一切都在吗?或者缺少什么?
如果您没有发送的文件,则可能已经在Web服务器或PHP中达到了上载的配置文件大小限制.至于罪魁祸首,你必须自己找出答案.
此外,请务必设置error_reporting
为E_ALL & E_NOTICE
不要错过代码问题.
最后,如果没有其他帮助,您将需要学习使用xdebug进行调试.同样,没有任何理由让Web开发人员无法调试您自己的代码.没有.
归档时间: |
|
查看次数: |
102 次 |
最近记录: |