If you are logged in, you have a link Submit to a submit form that you can use to upload code. The form supports submitting multiple files, to do this you simply select all the files you want to submit in the file chooser dialog.
Using the submit client requires a bit more setup work, but once this is done it is much more convenient to use than the submit form.
Please note that the submit client is provided as-is and we cannot guarantee that it will work on your system. It is a simple program that automatically (using a configuration file) logs in to the web page and uses the submit page.
Before running the submission client, you need to download a configuration file. This file should be placed in your home directory, or in the same directory as submit.py, and be called .kattisrc. You also need to download the client. To run the client, you need python installed on your machine.
The submit client depends on Python (either 2 or 3) and the requests library. You have to install both to run the client.
The easiest way to run the client is if you have named your source code to problemid.suffix, where suffix is something suitable for the language (e.g., .java for Java, .c for C, .cc or .cpp for C++, .py for Python). Let's assume you're solving the problem Hello World (with problem id "hello") and that your java solution is in the file Hello.java. Then you can simply run submit.py with Hello.java as command-line argument, and the client will make the correct guesses. You will always be prompted before a submission is sent.
The submit client can handle multiple files in a submission. For such submissions, the filename and suffix of the first file listed on the command line is the basis of the guesses. It is ok to list a file multiple times, e.g. submit.py Hello.java *.java.
In case the client guesses wrong, you can correct it by specifying a command line option. Running submit.py -h will list all options. The options as of writing this page are: