take the temporary file, before uploading it
Sounds like that's client-side to me... so PHP can't do that
"you have full control over who is allowed to upload and what is to be done with the file once it has been uploaded"
So does this mean I don't have control over the file before it's uploaded?
Yes, you'd be correct in saying that.
The max upload is around 2MB (general default value). Now, if you want to compress it after it's uploaded, you can use PHP functions to execute a command to compress the file; however, if your host won't allow anything over 100KB, you can't manipulate the file since files > 100KB will be rejected, no need to compress.
This sounds like a host issue, not really a PHP one. PHP can't do anything client-side (look to JavaScript to do that). If your host has an upload limit of 100KB, you really can't work around that (you can try with [man]ini_set/man; but it is no guarantee to work).