Aici există trei acțiuni posibile: listare, încărcare, descărcare. M-aș bucura să le văd în trei ramuri if - else if - else ..., cu comentarii înainte, și fără exit-uri, ca să fie clar că exact una dintre ele se execută de fiecare dată:

    if ($problemId) {                 // List attachements
      ...
    } else if ($downloadId) {   // Download an attachment
      ...
    } else if ($files) {               // Upload one or more attachments
      ...
    } else {                             // Unknown action
      FlashMessage::add(... ceva eroare...);
      Util::redirect(...);