2 Answers. if you just write a function call (uploadImage(therefugedfw.com)) inside an object literal it will be executed once when the object literal is initialized so when KO parses the binding. the this doesn't refer to the current element in the binding you need to use $element instead. HTML5 File bindings for knockout js with drag and drop and custom input buttons - adrotec/knockout-file-bindings. A binding that stores an encoded file (from an input element) in an observable. - TooManyBees/knockoutjs-file-binding.