我试图用取一个ReadableStream.在这个例子中,ReadableStream应该无限期地重复"Some data ...".
fetch('/', {
method: 'POST',
body: new ReadableStream({
pull: function(controller) {
console.log('pull called!');
controller.enqueue('Some data...');
}
})
});
Run Code Online (Sandbox Code Playgroud)
这不起作用.而pull
被执行一次,没有数据被请求体中的发送.
POST / HTTP/1.1
Host: example.com
Connection: keep-alive
Content-Length: 0
Origin: https://example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
Accept: */*
Referer: https://example.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
Run Code Online (Sandbox Code Playgroud)
如何使用fetch可用的ReadableStream(或任何我可以编写动态数据的流)?
或者,如果这还不可能,请您说明一下吗?谢谢.
注意:这是一个更具体的衍生问题: 通过HTTP将数据从浏览器传输到服务器的方法
题:
如何在服务器和客户端上实时读取和回显正在服务器上写入的上传文件的文件大小?
语境:
文件上传的进展被写入从服务器POST
请求通过由fetch()
,其中body
被设置为Blob
,File
,TypedArray
,或ArrayBuffer
对象.
当前实现将File
对象设置为body
传递给第二个参数的对象fetch()
.
需求:
读取echo
并向客户端写入正在写入服务器文件系统的文件的文件大小text/event-stream
.GET
在写入作为查询字符串参数的脚本作为变量提供的所有字节时停止.文件的读取当前发生在一个单独的脚本环境中,其中GET
应该读取文件的脚本调用是在POST
将文件写入服务器的脚本之后进行的.
没有达到将文件写入服务器或读取文件以获取当前文件大小的潜在问题的错误处理,尽管这将是echo
文件大小部分完成后的下一步.
目前正试图满足要求使用php
.虽然也有兴趣在c
,bash
,nodejs
,python
,或其他可用于执行相同任务的语言或方法.
客户端javascript
部分不是问题.简而言之,在php
万维网上使用的最常见的服务器端语言之一,实现该模式而不包括不必要的部分.
动机:
有关:
问题:
入门
PHP Notice: Undefined index: HTTP_LAST_EVENT_ID in stream.php on line 7
Run Code Online (Sandbox Code Playgroud)
在terminal
.
另外,如果替代
while(file_exists($_GET["filename"])
&& filesize($_GET["filename"]) < …
Run Code Online (Sandbox Code Playgroud)