dongliangkeng1056 2015-08-14 13:08
浏览 99
已采纳

在PHP中无法读取小于1024字节(1KB)的fread

I want to read a file in PUT request. As suggested in the PHP documentation:

<?php
/* PUT data comes in on the stdin stream */
$putdata = fopen("php://input", "r");

/* Open a file for writing */
$fp = fopen("myputfile.ext", "w");

/* Read the data 1 KB at a time
   and write to the file */
while ($data = fread($putdata, 1024))
  fwrite($fp, $data);

/* Close the streams */
fclose($fp);
fclose($putdata);
?>

But when the file sent is less than 1 KB, then it doesnt read. Do anyone know about this specific behaviour of fread in PHP? Thanks!

Even when the while condition is changed to while($data=fread($putdata, 512)), it doesn't go inside the loop. I don't know its specific behaviour, but is it like that fread doesn't support a chunk less than 1024? Just curious!

  • 写回答

1条回答 默认 最新

  • doudan4834 2015-08-17 06:45
    关注

    stream_get_contents($fp) worked! It returned the contents of an already open stream ($fp in this case) as a string in one shot. Thank you all for your suggestions :)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作