You are missing the point a little.
The triggere in your panel, is causing the submit button to post the panel, not the file.
So the post back, does not have a file, that is why your property HasFile is empty.
get rid of the trigger, and the update panel, you do not need it for your code.
You CAN NOT acutally determine the file size, etc... without posting back, unless you do some other methods, described in links we gave you already.
The solution you want, is not doable. You can not have the asynch post back and the upload work together, without doing something like the details in the links we provided.
You have to accept that the update panel and the upload control are doing two different things, and will not work together without other stuff invovled.