Foros del Web » Programando para Internet » PHP »

Formulario de Curriculos con $_FILES

Estas en el tema de Formulario de Curriculos con $_FILES en el foro de PHP en Foros del Web. Bueno quizas me e enredado mucho pero estoy buscando y no consigo como dar al clavo Estoy haciendo un Formulario donde los Usuarios puedan alojar ...
  #1 (permalink)  
Antiguo 18/07/2011, 09:32
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Pregunta Formulario de Curriculos con $_FILES

Bueno quizas me e enredado mucho pero estoy buscando y no consigo como dar al clavo

Estoy haciendo un Formulario donde los Usuarios puedan alojar su CV en nuestra web para posteriormente ofrecerles un empleo.

Ahora lo que tengo pensado es crear un formulario con datos basicos (NOMBRES, CEDULA, y AREA DE PROFESION) y con un campo donde les permita subir su Hoja de vida.

Ahora quiero que al dar al boton "Enviar" Se guarden sus datos en la BD y suba su Cv.

Lo de guardar en la BD lo tengo resuelto, el problema es al subir archivos, quiero que en una carpeta del serv (Curriculos) se creen sub carpetas segun la Profesion, y posteriormente suba la hoja de vida, pero nose como comprobar la existencia de una carpeta y de no exister la cree, y cuando subo un archivo no lo puedo ver osea no lo guarda :S mi codigo es el Sig:
Código PHP:
Ver original
  1. <?
  2. if($_POST)
  3. {
  4.     //mkdir("/Curriculo", 0700);
  5.     $destino = 'Curriculos' ; // Carpeta donde se guardata
  6.     copy( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' .$_POST["ced"].'.'.$_FILES [ 'file' ][ 'type' ]);  // Subimos el archivo
  7.         include('post.html'); // Incluimos la plantilla
  8. }
  9. ?>
  10. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  11.   <tr>
  12.     <td class="texto">En Esta Seccion, coloque sus datos y acontinuacion cargue su Curriculo, (Puede ser formato PDF, DOC, PPT, XLS, DOCX, PPTX, XLSX).</td>
  13.   </tr>
  14.   <tr>
  15.     <td>
  16.     <br><br>
  17.     <form action="?page=Empleo" method="post" enctype="multipart/form-data">
  18.     <table width="100%" border="0" cellspacing="0" cellpadding="0">
  19.       <tr>
  20.         <td>Apellidos y Nombres: </td>
  21.         <td><input type="text" name="nom" size="40"/></td>
  22.       </tr>
  23.       <tr>
  24.         <td>Cedula de Identidad: </td>
  25.         <td><input type="text" name="ced" size="40"/></td>
  26.       </tr>
  27.       <tr>
  28.         <td>Area de Profesion: </td>
  29.         <td><select name="prof">
  30.             <option>Informatica</option>
  31.             <option>Administracion</option>
  32.             <option>Contaduria</option>
  33.             <option>Recursos Humanos</option>
  34.             <option>Mantenimiento</option>
  35.             <option>Sin Profesion</option>
  36.           </select>
  37.           </td>
  38.       </tr>
  39.       <tr>
  40.         <td>Curriculo: </td>
  41.         <td><input name="archivo" type="file" id="file" size="40"></td>
  42.       </tr>
  43.       <tr>
  44.         <td colspan="2"><input name="boton" type="submit" id="boton" value="Enviar"></td>
  45.       </tr>
  46.     </table>
  47.     </form>
  48.     </td>
  49.   </tr>
  50. </table>
  #2 (permalink)  
Antiguo 18/07/2011, 09:35
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Formulario de Curriculos con $_FILES

if( !is_dir("carpeta")) mkdir("carpeta", 0755)


si la carpeta no existe, la creo
__________________
aconcaguaestudio.com
  #3 (permalink)  
Antiguo 18/07/2011, 09:43
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

pero con is dir es lo q estoy probando pero el pregunta por la existencia de la carpeta dentro del directorio actual? o tengo q especificar todo el directorio estoy haciendo esto y me muestra el NO

Código PHP:
Ver original
  1. $Ruta.="http://localhost/Curriculos/";
  2.     $Ruta.=$_POST['prof'];
  3.     $Ruta.="/";
  4.     echo $Ruta;
  5.     echo "<br>";
  6.     if(is_dir($Ruta))
  7.     {
  8.         echo "si";
  9.     }
  10.     else
  11.     {
  12.         echo "no";
  13.     }
  #4 (permalink)  
Antiguo 18/07/2011, 09:49
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Formulario de Curriculos con $_FILES

Tienes que poner la ruta relativa al fichero desde el que lo estás ejecutando, no http://localhost/, eso es una URL, no una ruta válida de una carpeta. Por ejemplo, si tienes la siguiente estructura:
Código:
- /
 |- fichero.php (desde donde ejecutas el código)
 |- Curriculos
   |- Fontanero
   |- Electricista
Para is_dir(Curriculos/Fontanero) debería dar si, para is_dir(Curriculos/Pintor) deberís ser no.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 18/07/2011, 09:58
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

Gracias ya solucione el 1er problema con las rutas ya las lee y las crea de no existir, lo siguiente es que cree el archivo con el valor de la variable CEDULA (ced) y lo estoy haciendo asi:

Código PHP:
Ver original
  1. copy( $_FILES [ 'file' ][ 'tmp_name' ], $Ruta . '/' .$_POST["ced"].'.'.$_FILES [ 'file' ][ 'type' ]);

Pero no esta funcionando
  #6 (permalink)  
Antiguo 18/07/2011, 10:01
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Formulario de Curriculos con $_FILES

si quieres lo puedes copiar con el nombre que tiene originalmente y después con rename le cambias el nombre

rename("original.jpg", "nuevo_nombre.jpg");
__________________
aconcaguaestudio.com
  #7 (permalink)  
Antiguo 18/07/2011, 10:02
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Formulario de Curriculos con $_FILES

Tres cosas:
1. $Ruta ya tiene el valor relativo?
2. La carpeta está creada con permisos de escritura?
3. $_POST["ced"] lleva lo que crees que lleva?

EDITO: lo mejor en estos casos es hacer un echo de toda la cadena, ahí los fallos saltan a la vista.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Última edición por vgonga1986; 18/07/2011 a las 10:04 Razón: Adicional
  #8 (permalink)  
Antiguo 18/07/2011, 10:11
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

si eso estoy haciendo pero no quierio subir imagenes quiero subir cualquier archivo particularmente DOC PDF PPT pero para probar quiero aceptar cualquier campo.... voy a probar lo que me has dicho vgonga1986

para la 2= estoy programando en Windows 7 pero el sistema deberia funcionar en cualquier SO como le asigno ese privilegio cuando la creo?
  #9 (permalink)  
Antiguo 18/07/2011, 10:23
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Formulario de Curriculos con $_FILES

amigo lo que te puse fue ejemplo, del uso del rename
la extensón la sabrías con
$_FILE['archivo']['type'] no ?
__________________
aconcaguaestudio.com
  #10 (permalink)  
Antiguo 18/07/2011, 10:29
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

lose, pero mi problema es que no me esta creando el archivo, no me esta haciendo el copy:

Código PHP:
Ver original
  1. echo"<br>";
  2.     echo $_FILES['file']['tmp_name'];
  3.     echo"<br>";
  4.     echo $Ruta;
  5.     echo"<br>";
  6.     echo $_FILES['file']['name'];
  7.     copy($_FILES['file']['tmp_name'], $Ruta.'/'.$_FILES['file']['name']);

la primera y ultima variable osea FILEname y FILEtmp_name, no arrojan nada osea esos "echo" salen vacios :S
  #11 (permalink)  
Antiguo 18/07/2011, 10:30
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

lose, pero mi problema es que no me esta creando el archivo, no me esta haciendo el copy:

Código PHP:
Ver original
  1. echo"<br>";
  2.     echo $_FILES['file']['tmp_name'];
  3.     echo"<br>";
  4.     echo $Ruta;
  5.     echo"<br>";
  6.     echo $_FILES['file']['name'];
  7.     copy($_FILES['file']['tmp_name'], $Ruta.'/'.$_FILES['file']['name']);

la primera y ultima variable osea FILEname y FILEtmp_name, no arrojan nada osea esos "echo" salen vacios :S
  #12 (permalink)  
Antiguo 18/07/2011, 10:59
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Formulario de Curriculos con $_FILES

ahhhh y bueno revisa a ver si el archivo es mayor que lo que tienes permitido en tu php.ini
__________________
aconcaguaestudio.com
  #13 (permalink)  
Antiguo 18/07/2011, 14:00
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

Ya me funciono solo tube que cerrar y volver a abrir el navegador, pero ahora como hago para que el archivo se guarde con el nombre que yo quiera?

es decir que no tome el nombre original si no el valor de un a variable del mismo formulario:

Código PHP:
Ver original
  1. copy($_FILES['file']['tmp_name'], $Ruta.'/'.$_FILES['file']['type']);
  #14 (permalink)  
Antiguo 18/07/2011, 14:07
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Formulario de Curriculos con $_FILES

move_uploaded_file ( string nombre_archivo, string destino )
__________________
aconcaguaestudio.com
  #15 (permalink)  
Antiguo 18/07/2011, 14:10
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Formulario de Curriculos con $_FILES

Buenas,

Tal como lo tienes ahora, puedes hacer un echo $Ruta.'/'.$_FILES['file']['type'] y mostrarme el resultado?

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #16 (permalink)  
Antiguo 18/07/2011, 15:32
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

sale esto: application/vnd.openxmlformats-officedocument.wordprocessingml.document sin ruta cuando muestro el type, por eso cuando coloco la cedula como hago que me conserve la misma extension
  #17 (permalink)  
Antiguo 18/07/2011, 15:59
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

Bueno por hoy e molestado bastante pero ya logre lo que queria hacer, aclaro primero que uso COPY en ves de MOVE_UPLOAD_FILE, puesto que cuando quiero borrar o cambiar el documento creado con MOVE me pide permisos, y con el COPY me lo hace sin problemas..

Ahora el codigo que hice fue esto:
Código PHP:
Ver original
  1. //subo el archivo
  2.             $ex=explode(".",$_FILES['file']['name']);
  3.             $Archivo.=$Ruta;
  4.             $Archivo.='/';
  5.             $Archivo.=$_POST["ced"];
  6.             $Archivo.=".";
  7.             $Archivo.=$ex[1];
  8.             echo $Archivo;
  9.             copy($_FILES['file']['tmp_name'], $Archivo);
  10.             $men="Su Curriculo se ha Subido Correctamente, Gracias por Tomarnos en Cuenta!";//El Usuario se Inserto y el archivo Fue Creado
con un explode separo la extension de la variable y la guardo en una variable, luego creo otra variable donde uno tanto la ruta como el nombre del archivo y su extension, si conocen una forma mas ABREVIADA de hacer esto me gustaria saberla, por los momentos esto me funciona correctamente y esperare anadir los filtros para tipo y tamano maximo, una pregunta, cuanto es el tamano maximo q por defecto me acepta PHP para la subida de archivo, y como cambio este maximo?
  #18 (permalink)  
Antiguo 19/07/2011, 01:39
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Formulario de Curriculos con $_FILES

En el fichero php.ini (normalmente en la raíz de tu instalación de php) tienes la variable upload_max_filesize. Creo que para instalaciones de paquetes como XAMP, WAMP y demás viene por defecto a 126K, pero puedes poner lo que quieras en principio.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #19 (permalink)  
Antiguo 19/07/2011, 07:23
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Formulario de Curriculos con $_FILES

Bueno yo uso es Appserver, buscare y configurare eso claro en el servidor donde correra la aplicacion Muchas Gracias por su paciencia y apoyo xD

Etiquetas: files, html, formulario, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:25.