- From: Horacio Rivero <notifications@github.com>
- Date: Sun, 02 Jan 2022 22:50:00 -0800
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/fetch/issues/1380@github.com>
I am uploading a file using fetch streams, but I need can calculate the upload progress.
On the server I receive an corrupt file of 0 bytes, I really don't know how to use the ReadableStreams correclty, I am doing something wrong?.
Browser code
```js
const fileReadble = (reader) => new ReadableStream({
start(controller) {
return pump()
function pump() {
return reader.read().then(({ done, value }) => {
if (done) {
controller.close()
return
}
// i think implement file upload traking here
controller.enqueue(value)
return pump()
})
}
}
const uploadVideo = async (file) => {
const fileReader = file.stream().getReader()
const response = await fetch('http://localhost:3005', {
method: 'POST',
body: fileReadble(fileReader),
})
if (!response.ok) {
console.error(`unexpected response ${response.statusText}`)
return
}
}
})
```
Server code (Node.js)
```js
import http from 'node:http'
import { createWriteStream } from 'node:fs'
http
.createServer((req) => {
if (req.method !== 'POST') return
req.pipe(createWriteStream('./video.mp4'))
})
.listen(3005)
```
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/issues/1380
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/fetch/issues/1380@github.com>
Received on Monday, 3 January 2022 06:50:12 UTC