情景:前端java客户端使用stream的方式穿过来一个文件(30m左右),我在php后端使用file_get_contents('php://input');流的方式接收,在fwrite()写到一个新的文件中去。    发现: 但是我发现传输过程很慢,整个过程要300多秒,查资料发现file_get_contents是阻塞函数,只能等到流读完了才能开始写,这种方式明显合理。    问题:有没有可以读一点流,写一点,读一点写一点类似去读缓存区一样,用循环,读一段写一段获取有其他更好的办法去读取stream流么。    求大神现身啊。。在线等,急。

解决方案 »

  1.   

    那你就不要用 http 协议嘛
      

  2.   

    那我使用什么方式比较好呢?麻烦说详细点呢,前端使用的是http post的方式发的
      

  3.   

    fread while 不行吗?
      

  4.   

    既然 前端使用的是http post的方式发的,那么你服务端就只能这样接收了
    当然,如果你又能力修改 php 内核,那就另当别论了
      

  5.   

    file_get_contents('php://input');
    这个函数是读文件的,那用和他更能相同的fopen,readline,这样的方法代替可以吗?
      

  6.   

    指定传输文本类型,比如说mcpack,protobuf这种。你可以在传输前做一个转换