Fix your code in your example and make your question more clear.
That said, it’s unclear whether you’re trying to validate an uploaded file or a downloaded file.
I’m going to take a wild guess and say that you might be trying to serve a file that’s already uploaded. Mimetypes are a pretty bad way of validating that, but your problem might actually lie with your webhost. In similar situations in the past, I’ve seen shared hosting providers inserting all kinds of headers without my permission, resulting in problems similar to what you might be experiencing, were your question more precise. Unfortunately, the solution in that particular case was to re-write the entire serving process for the download in php, which had a whole bunch of problems of its own.
solved application/force-download