By default when you upload files using ASP.NET Web API, the files are saved using a random filename.
This is not a bug, but a security decision Microsoft made. They considered it a security risk to take the file name provided in the Content-Disposition header field and decided instead to compute a file name.
You can easily solve this by deriving from the default MultiPartFormDataStreamProvider and provide your own naming mechanism:
If you want to know some more about uploading files using Web API, I recommend the following blog post: A guide to asynchronous file uploads in ASP.NET Web API RTM