Hola de nuevo y gracias en primer lugar por leer el tema y, quizá orientarme en su solución.
Tengo un formulario en el que el administrador podrá subir documentos destinados a uno, a varios o a todos los usuarios de un sitio; serán unos 80 estos últimos. Los nombres de los usuarios se toman de la base de datos
A continuación pongo el código de mi formulario:
Código HTML:
<form action="<?php echo $editFormAction; ?>" method="post" name="form4" id="form4" enctype="multipart/form-data">
<table align="center">
<tr valign="baseline">
<td nowrap="nowrap" align="right">Nombre:</td>
<td><select name="us_alias" size="10" multiple="multiple">
<?php
do {
?>
<option value="<?php echo $row_rs_alias_usuario['us_nombre']?>"><?php echo $row_rs_alias_usuario['us_nombre']?></option>
<?php
} while ($row_rs_alias_usuario = mysql_fetch_assoc($rs_alias_usuario));
$rows = mysql_num_rows($rs_alias_usuario);
if($rows > 0) {
mysql_data_seek($rs_alias_usuario, 0);
$row_rs_alias_usuario = mysql_fetch_assoc($rs_alias_usuario);
}
?>
</select></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Seleccionar documento:</td>
<td><input type="hidden" name="MAX_FILE_SIZE" value="1000000" /><input type="file" name="nombre_doc" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"> </td>
<td><input name="bot" type="submit" id="bot" value="Enviar"/></td>
</tr>
</table>
<input name="fechar" type="hidden" value="" />
<input type="hidden" name="MM_insert" value="form4" />
</form>
El formulario funciona y me sube los archivos... pero a condición de que no seleccione más de un usuario en el menú. Y claro, necesito poder incluir en la base de datos todos los nombres de los usuarios a los que se haya incluido en la selección para que luego, cuando abran sesión, puedan ver en una tabla de resultados los documentos que el administrador ha querido compartir con ellos.
Pongo a continuación el php que sube los documentos y los coloca en una carpeta:
Código PHP:
//Formulario upload
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form4")) {
/*Codigo w3schools*/
$target_dir = "../_docs_para_usuarios/";
$target_file = $target_dir . basename($_FILES["nombre_doc"]["name"]);
$uploadOk = 1;
$hoy = getdate();
$TipoArchivo = pathinfo($target_file,PATHINFO_EXTENSION);
// Comprueba si el archivo existe
if (file_exists($target_file)) {
echo "Lo sentimos, el archivo ya existe. Renómbrelo y súbalo de nuevo (E1).";
$uploadOk = 0;
}
// Comprueba el tamaño del archivo file size
if ($_FILES["nombre_doc"]["size"] > 1000000) {
echo "Lo sentimos, su archivo es demasiado grande. Sólo documentos de menos de 1MB (E2).";
$uploadOk = 0;
}
// Solo ciertos formatos de archivo
if($TipoArchivo != "jpg" && $TipoArchivo != "jpeg" && $TipoArchivo != "doc"
&& $TipoArchivo != "docx" && $TipoArchivo != "pdf" && $TipoArchivo != "xslx" && $TipoArchivo != "xls" ) {
echo "Lo sentimos solo son permitidos archivos JPG, JPEG, DOC, DOCX, XLS y XSLX (E3).";
$uploadOk = 0;
}
// Chequea si la variable $uploadOk está a 00 por algún error
if ($uploadOk == 0) {
echo "Lo sentimos, su archivo no ha sido subido (E4)";
// si todo va bien se sube el archivo
} else {
if (move_uploaded_file($_FILES["nombre_doc"]["tmp_name"], $target_file)) {
echo "El documento ". basename( $_FILES["nombre_doc"]["name"]). " ha subido correctamente.";
} else {
echo "Lo sentimos, ha sucedido un error en la subida de archivos. Por favor inténtelo de nuevo. (E5)";
}
}
$insertSQL = sprintf("INSERT INTO docs_para_usuarios (us_alias, nombre_doc, fecha) VALUES (%s, %s,now())",
GetSQLValueString($_POST['us_alias'], "text"),
GetSQLValueString($target_file, "text"),
GetSQLValueString($_POST['fechar'], "date"));
mysql_select_db($database_PML2, $PML2);
$Result1 = mysql_query($insertSQL, $PML2) or die(mysql_error());
}
mysql_select_db($database_PML2, $PML2);
$query_rs_alias_usuario = "SELECT us_alias, usuarios_pml.us_nombre FROM usuarios_pml";
$rs_alias_usuario = mysql_query($query_rs_alias_usuario, $PML2) or die(mysql_error());
$row_rs_alias_usuario = mysql_fetch_assoc($rs_alias_usuario);
$totalRows_rs_alias_usuario = mysql_num_rows($rs_alias_usuario);
?>
Finalmente, aclarar que soy torpe con PHP y que todo lo que hago es con Dreamweaver CS6.
Gracias una vez más por su atención y ayuda y un saludo