There are two things that I can think of that may not be covered in the context of your code here for image upload.
1) the directory that you are uploading these files to needs to have write privileges which are assigned to the virtual directory in the IIS admin console.
2) The OS folder needs the correct permissions to allow the users identity to write to this folder as well. If you are doing any kind of impersonation you will need some way of adding the identity to the folder Access Control List. If this is not the case then you will need to assign Internet Guest Account permissions.
3) If the file is having issues being displayed there could be issues in your MIME Map you can edit this either with the IIS admin consol or the C:\WINDOWS\system32\inetsrv\MetaBase.xml file.
After all that has been checked Looking through your code, I would strongly recommend if you have a routine to exclude a particular list of file extensions from uploading, you should refactor that into another command that returns a true or false conditions. That is more related to validation not uploading it can help decouple the code cohesion of these two items.
I also noticed
txtBIP.PostedFile.SaveAs(path +txtBIP.FileName); txtTIP.PostedFile.SaveAs(path + txtTIP.FileName);<br />
I am not sure what the relevance of this is but BIP is checked TIP is not.
Quick note you should pass parameters into queries using SqlParamaters not inlining code directly.
Finally, I noticed that you are saving the virtual path using ~/Assets/ which is a virtual path that only .NET recognizes. if you extract this into a standard link tag it won't reinterpret into a usable path without using calls to VirtualPathUtility.