[snip] This was all working perfectly yesterday. Sometime today, the $_FILES autovariable seems to have reversed itself - if nothing is uploaded using either file field, $_FILES contains both first and second arrays (both empty of data). For any file that is uploaded, that array is empty. (If I send a file using the second file field, then $_FILES contains an empty "first" array, but no "second" array exists.) If I try to upload two files, then $_FILES does not exist at all. Any suggestions for what else I can check or what could be wrong would be vastly appreciated. [/snip] It sounds to me as if the upload form is the problem. If the back-end code (that you posted) was working fine and hasn't been messed with then perhaps your other code has been messed with.