Hola!
Tengo un formulario de contacto en mi web y puse un campo para que se pueda, desde el mismo, subir un archivo a la web. Desde el botón para subir al archivo, se llama a un script:
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
<input type="button" name="button" id="button" value="Subir Imagen" onclick="javascript:subirimagen('strArchivo', 'images_contacto');"/>
</form>
El script, que está en la misma página, es el siguiente:
<script>
function subirimagen(nombrecampo, carpetadestino)
{
self.name = 'opener';
remote = open('gestionimagen.php?campo='+nombrecampo+'&nomb recarpeta='+carpetadestino, 'remote', 'width=400,height=150,location=no,scrollbars=yes,m enubars=no,toolbars=no,resizable=yes,fullscreen=no , status=yes');
remote.focus();
}
</script>
Y desde este script se llama a otra página (gestionimagen.php) que lo que hace es subir el archivo a una carpeta que le paso por método get (images_contacto). El código es el siguiente:
<?php if ((isset($_POST["enviado"])) && ($_POST["enviado"] == "form1")) {
if (($_FILES['userfile']['size']>2048000))
echo "Solo ficheros de 100Kb como maximo";
else
{
$nombre_archivo = $_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'], "images/".$_POST["nombrecarpeta"]."/".$nombre_archivo);
?>
<script>
opener.document.form1.<?php echo $_POST["nombrecampo"]; ?>.value="<?php echo $nombre_archivo; ?>";
self.close();
</script>
<?php
}
}
else
{?>
<form action="gestionimagen.php" method="post" enctype="multipart/form-data" id="form1" name="form1" class="margensuperior">
<p>
<input name="userfile" type="file" />
</p>
<p>
<a class="button" href="javascript:document.form1.submit();"><span>S ubir Imagen</span></a>
</p><input name="nombrecampo" type="hidden" value="<?php echo $_GET["campo"]; ?>" />
</p><input name="nombrecarpeta" type="hidden" value="<?php echo $_GET["nombrecarpeta"]; ?>" />
<input type="hidden" name="enviado" value="form1" />
</form>
Funcionar funciona, pero tiene dos problemas:
El primero es que no cierra la ventana que se abre para poder escoger el archivo a subir, y el segundo que no escribe el nombre del archivo que se sube en el campo correspondiente.
Agradezco la ayuda de antemano.
Un saludo!