php上传文件为啥一定要用post

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php上传文件为啥一定要用post相关的知识,希望对你有一定的参考价值。

传输机制限定必须要用post,并且并须要加multipart/form-data,不然服务器得不到需要上传的文件 参考技术A 因为只有POST可以用……
GET方法是要附加在URL后面的,不可能把文件附加到URL后面上传吧?
只能用POST。本回答被提问者和网友采纳
参考技术B 因为要使用表单,而且是以二进制提交表单
而get方式,显然无法把这些转化到url提交吧

修改PHP上传文件的大小限制

前面我们了解了如何《使用PHP实现文件上传和多文件上传》。不过,在PHP的默认配置情况下,当上传的文件大小超出一定的限制时,我们将得到如下的错误提示信息:

Warning: POST Content-Length of 625523488 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

上述错误信息的大致意思是,我们使用POST请求提交的数据大小超过了服务器的最大限制数(8388608字节=8MB)。

出现上述错误的原因是,在PHP的配置文件php.ini中,默认存在如下配置信息(在php.ini中,行首的分号";"表示当前行是注释,不会生效):

  1. ;脚本解析输入数据(类似 POST GET)允许的最大时间,单位是秒。 它从接收所有数据到开始执行脚本进行测量的。
  2. max_input_time = 60
  3.  
  4. ;允许客户端单个POST请求发送的最大数据
  5. post_max_size = 8M
  6.  
  7. ;是否开启文件上传功能
  8. file_uploads = On
  9.  
  10. ;文件上传的临时存放目录(如果不指定,使用系统默认的临时目录)
  11. ;upload_tmp_dir =
  12.  
  13. ;允许单个请求上传的最大文件大小
  14. upload_max_filesize = 2M
  15.  
  16. ;允许单个POST请求同时上传的最大文件数量
  17. max_file_uploads = 20

从上面的配置信息中我们可以看出,PHP的默认配置信息就是导致PHP文件上传时提示文件大小超出限制的「罪魁祸首」。笔者已经在上述配置信息中给出了各个指令选项对应的中文注释信息,大家可以根据自己的实际需求情况对php.ini配置文件进行相应的修改。












以上是关于php上传文件为啥一定要用post的主要内容,如果未能解决你的问题,请参考以下文章

跟着百度学PHP[13]-文件上传

php文件上传在php.ini中都设置了 post为150M 上传100M 时间设置0,为啥我上传5M文件还是显示错误1,

php POST上传和FTP上传哪个好 为啥

Springmvc文件上传

文件上传和下载

HTML 文件上传 - 为啥使用 IFrame