Das mit php kannst du natürlich so machen, nur ist das sehr verwirrend, weil das wie ein PHP Server ausieht, es aber garnicht ist. Natürlich ist es korrekt nicht alles über das default Action zu machen, nur würde ich da halt die PathInfo auf "/upload" oder soaws setzen und nicht etwas vorgaukeln was nicht ist. Die Action wärer dann z.B. so:
http://localhost:8443/upload. Das hat aber nun mal nichts mit deinem Problem zu tun, sondern ist nur eine Bemerkung meinerseits.
Ich nutze das aber etwas anderst als du, da ich für den Upload ein JS Plugin (
https://www.plupload.com) nutze. Da werden die Dateien separat an eine spezielle Upload
URL meiner Webapplikation geschickt. Bei dieser fileupload Action erhalte ich dann alle Dateien über Request.Files[i]. Ich mache das also nicht wie du mit einer einzelnen Form und einem input type "file". Die Form schickt nur die Formulardaten und das Plugin schickt die Dateien separat an eine andere
URL, als die Formulardaten. Das enctype="multipart/form-data" braucht mein Formular daher auch nicht.
Ob das also überhaupt so funktioniert mit einer Form und einem Input type "file", müsste ich selber mal testen. Für meinen Fall war es aber so, dass gewünscht wurde, dass der Kunde mehrere Dateien hochladen kann und das wäre mit einer simplen Form nicht mehr machbar gewesen.
In deinem Fall mit einer einzlnen Form müsste aber auf jeden Fall enctype="multipart/form-data" bei der Form gesetzt sein.