The FileUpload is really null using AJAX call, because file upload is processing in following steps.
- Choose file in a form field
- Post the form using HTTP POST request
- Receive the HTTP POST request on the server side
- Parse the request to a the FileUpload
If you just add an onChange ajax event on your file input field it causes just a GET request on an URL, but it doesn't send the form data.
You can try OnChangeAjaxBehavior or AjaxButton as shown in examples on http://www.wicket-library.com/wicket-examples/ajax/upload