No estás creando arrays para los campos que requieres, por eso no los obtienes completos, sólo cambia el
str_repeat por un
for() e incluye el número para cada elemento:
Código PHP:
$fotos = $_POST['fotos'];
$archivos = $_POST['archivos'];
echo " <form name=\"form1\" method=\"post\" action=\"agregar.php\">
<input type=\"hidden\" name=\"que\" value=\"cargafotosarchivos\" />
<input type=\"hidden\" name=\"idprod\" value=\"$idprod\" /><br/>
Fotos:<br/>";
for($i = 1; $i <= $fotos; $i++)
echo "Foto <br/><input name='foto[$i]' type=\"file\" /><br/>\n";
echo "<br/><br/>Archivos:<br/><br/>";
for($i = 1; $i <= $archivos; $i++)
echo "Nombre de archivo <br/><input type='text' name='archivon[$i]'><br/> Archivo <br/><input name='archivo[$i]' type=\"file\" /><br/>";
echo " <br/><br/><br/><input type=\"submit\" name=\"Submit\" value=\"Cargar\"></form>";
Nota: Cuando sólo vas a procesar una línea en for, while, if, else, no se requieren las llaves {}