PHP使用php://input接收上传文件时如何过滤空或小于1字节的无效文件
解决方案
你可以先读取输入流内容做长度校验,符合要求再写入文件,修改后代码如下:
<?php $vist_page = "post2.php"; include "logger.php"; // 读取输入流内容 $input_data = file_get_contents("php://input"); // 校验:读取成功且内容长度≥1字节才写入文件 if ($input_data !== false && strlen($input_data) >= 1) { file_put_contents("outputfile.txt".uniqid(), $input_data); } ?>
逻辑说明
- 原代码直接将输入流读取结果传入写入方法,无论内容是否为空都会生成对应文件,是产生空文件的核心原因
- 新增的校验逻辑先将输入流内容存入变量,先判断读取操作是否成功,再判断内容字节长度,两个条件都满足才执行写入,空内容会直接跳过,不会生成无效文件
内容的提问来源于stack exchange,提问作者Thomas g
相关产品推荐
相关产品推荐

