JSFiddle - React, Tailwind, and code Playground

HTML

<input id="$input" type="file">

JavaScript

async function main() {
  var file = $input.files[0]
  const size = file.size
  console.log('file size:', file.size)
  
  var reader = file.stream().getReader();
  var chunk = await reader.read()
  var chunks = [chunk.value]
  
  prompt('now truncate', `perl -e 'truncate $ARGV[0], ((-s $ARGV[0]) - 1)' ${file.name}`)
  
  while (!chunk.done) {
	  chunk = await reader.read()
    chunk.value && chunks.push(chunk.value)
  }
  prompt('file size should be ' + size + ' it was:', new Blob(chunks).size)
}

$input.onchange = main