Thank you so much for providing the sample code and introducing me to param. Both of the code worked! I did notice that when I use param (your second code), the browse button for FileInput always displays “no file selected” within a few seconds after the file update (the actual file name will appear for a very brief time). I was wondering if this has anything to do with the ‘watch = True’, and if there’s a way to keep the file name.