Maybe not the cleanest but this works:
import io
import panel as pn
import pandas as pd
pn.extension()
file_input = pn.widgets.FileInput(accept='.csv, .xls')
df = pn.widgets.DataFrame()
def load_csv(data):
if data is not None:
df.value = pd.read_csv(io.BytesIO(data))
return df.value
f = pn.bind(load_csv, file_input.param.value)
pn.Column(file_input, f).servable()