热搜:NVER node 开发 php

php接收post文件问题

2024-09-16 12:35:01
php接收post文件问题

vc客户端使用http post abc.txt文件给php server端,server端收到的abc.txt文件是空的,是不是php://input问题呢,请高手指教。谢谢!

vc客户端:
Content-Disposition: form-data; name="upload"; filename="abc.txt"
Content-Type: text/plain


php server端:
<?php
$input = file_get_contents('php://input');
file_put_contents('abc.txt',$input);
?>


回复讨论(解决方案)

要用$_FILE接收参数。

上传文件是使用 enctype="multipart/form-data"
而 php://input 不接受这种数据,而是原始post数据(raw)

在手册上看到了,
php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_data 潜在需要更少的内存。 enctype="multipart/form-data" 的时候 php://input 是无效的。 

查了手册, enctype="multipart/form-data" 的时候 php://input 是无效的,使用$_FILES搞定。谢谢各位啦