Public
Edited
Nov 23
1 star
Insert cell
Insert cell
Insert cell
fflate = require('fflate@0.8.2/umd/index.js')
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
mutable lastdrop = null
Insert cell
mutable compressedFile = null
Insert cell
mutable ratio = null
Insert cell
async function filedrop(event){
const items = event.dataTransfer.items
event.preventDefault()
if (items[0].kind !== "file"){
return
}
const file = items[0].getAsFile()
mutable lastdrop = file
const buffer = await file.arrayBuffer()
const before = file.size
const uarray = new Uint8Array(buffer)
const result = fflate.compressSync(uarray, {
mtime: file.lastModified,
filename: file.name
})
const after = result.length
mutable compressedFile = result
mutable ratio = after / before
}
Insert cell
function dragOverHandler(ev) {
// Prevent default behavior (Prevent file from being opened)
ev.preventDefault();
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more