Oczywiście, że się da! W formularzu musisz mieć pole typu "file", a w php kożystasz z "is_uploaded_file()" oraz "move_uploaded_file()" i musisz odpowiednio skonfigurować folder, w którym będą zapisywane te pliki nadając mu uprawnienia chmod 777 (zapis=4, odczyt=2, modyfikacja=1 kolejno dla: użytkownika(chcemy nadać wszystkie uprawnienia dlatego sumujemy liczby dla poszczególnych uprawnień, czyli 4+2+1=7), grupy(również 7), wszystkich(również 7))... Jak coś to pole typu "hidden" jest po prostu polem ukrytym, którego nie ma widać. Jeśli chodzi o zmianę nazwy to napewno jest możliwość. Wystarczy coś takiego:
$_FILES['nazwa_pola_z_formularza_typu_file']['name']="moja_nowa_nazwa";
Więcej na ten temat tutaj:
http://kursphp.com/rozdzial-6/upload-czyli-wysylanie-pliku-na-serwer/
Jeśli chcesz znaleźć jeszcze więcej informacji na ten temat wystarczy w google wpisać frazę "upload plików php" i troszkę poszukać na ten temat... Co do bezpieczeństwa tego rozwiązania to nie mam pojęcia czy jest dostatecznie duże... Tutaj musiałby wypowiedzieć się ktoś bardziej doświadczony.