Whether your server app is CGI or another type, it has nothing to do with upload ability.
Typically, to upload file your html form should contain <input type="file"> field(s) and submit request via POST.
Then, at server side, you should check Request.Files and process them accordingly.
Note, if your app is behind proxy (or cgi host server), that server config options should be checked (like POST size, file upload limits).