"Instead of passing a file location, what you might want to do is have the .NET app upload the file to a standard location, and give it a unique name (perhaps a GUID), then pass that data to the import proc. "
This is an excellent approach.
I use it then the files (exel or text) has the same format and there are
a bunch of them to be imported. I have a loop which copy the files to a folder on the server with one
name (copy/replace) and one import procedure.