Foros del Web » Programando para Internet » PHP »

Subir archivo doc al servidor

Estas en el tema de Subir archivo doc al servidor en el foro de PHP en Foros del Web. Hola. Siguiendo ejemplos de las FAQs, estoy intentando montar un formulario php desde donde un usuario pueda subir archivos .doc al servidor. os pego el ...
  #1 (permalink)  
Antiguo 14/11/2011, 05:46
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Subir archivo doc al servidor

Hola.
Siguiendo ejemplos de las FAQs, estoy intentando montar un formulario php desde donde un usuario pueda subir archivos .doc al servidor.

os pego el código donde se encuentar el formulario en cuestión....
Código PHP:
<form enctype="multipart/form-data" id="formulario" name="formulario" method="post" action="funciones/actualizacurr.php" >   
<TABLE id="tabladatos" CELLSPACING=0 CELLPADDING=0>
<?php  
    
echo("<tr><td class='etiquetacampotop'>Inserta tu currículum en formato texto</td>");
    echo(
"<td class='etiquetacampotop'>Anexa tu currículum en formato .doc</td></tr>");
    
    
    echo(
"<tr><td class='etiquetacampoCurriTexto'>");
    echo(
"<TEXTAREA NAME='curritexto' ID='curritexto' class='textareacurriculum'>$curritexto</TEXTAREA>"); 
    echo(
"</td>");    
    echo(
"<td class='etiquetacampotop'><input type='hidden' name='MAX_FILE_SIZE' value='20000'>
    <input name='fichero' type='file'><input name='submit' type='submit' value='Enviar' class='Curriculum'></td></tr>"
);
    
?>
</TABLE>
</form>
la ejecución la hago en un php aparte, a modo de función....
Código PHP:
<?php
include ("../funciones/seguridad.php");
include(
"../funciones/conex.php");
session_start();
$idusuario $_SESSION['g_idusuario'];
$link=Conectarse();
$result mysql_query("select * from usuariocurri where id_usuario=" $_SESSION['g_idusuario'] ,$link); 

    
$curritexto $_POST['curritexto'];

    if(
is_uploaded_file($_FILES['fichero']['tmp'])) { // verifica haya sido cargado el archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp'], $_FILES['fichero']['name'])) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
            echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
                        echo 
"<br><hr><br>";
        }
    }else{
    echo(
"no llega");    
    }



/* COMPROBAR SI EXISTE ... PARA ACTUALZAR O SI NO EXISTE, CREARLO ....*/
/*
if(mysql_num_rows($result) > 0){
$sql = "update usuariocurri set curritexto='".$curritexto. "'";
} else {
$sql= "insert into usuariocurri (id_usuario, curritexto) values ('$idusuario', '$curritexto')";    
}

mysql_query($sql ,$link); 
header ("Location: ../usuariocurr.php");*/
?>
El problema es que me devuelve el echo("No llega"), ya que, supongo, no verifica que el archivo haya sido cargado.

¿Dónde estoy fallando?
¿La carpeta "tmp" .. es definida por el sistema o tiene que ser una concrat por mí en el servidor? Si es así. ¿dentro del httpdoc?

Gracias por anticipado
  #2 (permalink)  
Antiguo 14/11/2011, 06:58
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir archivo doc al servidor

debes usar:

$_FILES['fichero']['tmp_name']

http://php.net/manual/en/function.is-uploaded-file.php
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 14/11/2011, 09:34
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Subir archivo doc al servidor

Gracias.. funciona...
¿Cómo lo muevo ahora a la carpeta destino?
  #4 (permalink)  
Antiguo 14/11/2011, 09:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Subir archivo doc al servidor

Usa move_uploaded_file para eso.
  #5 (permalink)  
Antiguo 14/11/2011, 09:41
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Subir archivo doc al servidor

Gracias de nuevo...
pero ... ¿Cómo especifico la ruta de destino?
Si quiero que sea una carpeta fuera del httpdoc?
  #6 (permalink)  
Antiguo 14/11/2011, 09:44
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir archivo doc al servidor

Cita:
Iniciado por AJDC Ver Mensaje
Gracias de nuevo...
pero ... ¿Cómo especifico la ruta de destino?
Si quiero que sea una carpeta fuera del httpdoc?
tal cual te indicó @GatorV, en este caso debes de dar una ruta absoluta, o relativa hacia atrás:

../../directorio/destino.doc
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 14/11/2011, 09:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Subir archivo doc al servidor

Exacto, es importante pasarle la ruta completa, con todo y el nombre del archivo destino, ya que si solo le pasas la carpeta, move_uploaded_file te regresará false y emitirá un mensaje de error.

Saludos.
  #8 (permalink)  
Antiguo 14/11/2011, 10:10
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Subir archivo doc al servidor

Pues no me sale.....
El código que tengo es....

Código PHP:
 if(is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['../../private/curriculums/tmp_name2.doc'])) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
                       echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['../../private/curriculums/tmp_name2.doc']."\">".$_FILES['fichero']['../../private/curriculums/tmp_name2.doc']."</a></i><br>";
                       echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
                    echo 
"<br><hr><br>";
        }
    }else{
    echo(
"no llega");    
    } 
Me devuelve página blanco .. ninguno de los echo.
Tengo una carperta en "/private/curriculums" desde el raiz del alojamiento... y con permisos 777

¿Dónde fallo?
  #9 (permalink)  
Antiguo 14/11/2011, 10:17
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir archivo doc al servidor

obviamente, porque no existe tal indice en ese array , la idea es esta:

Código PHP:
move_uploaded_file($_FILES['fichero']['tmp_name'], '../../private/curriculums/' $_FILES['fichero']['tmp_name']) 
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #10 (permalink)  
Antiguo 14/11/2011, 10:29
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Subir archivo doc al servidor

he cambiado a ésto.....
Código PHP:
  if(is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], '../private/curriculums/'$_FILES['fichero']['tmp_name'])) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
                       echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['../../private/curriculums/tmp_name2.doc']."\">".$_FILES['fichero']['../../private/curriculums/tmp_name2.doc']."</a></i><br>";
                       echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
                    echo 
"<br><hr><br>";
        }
    }else{
    echo(
"no llega");    
    } 
pero sigue sin mostrar nada.. y en el ftp no llega archivo alguno...
¿Donde fallo, por favor?
¿Está bien definida la carpte de destino?
  #11 (permalink)  
Antiguo 14/11/2011, 10:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Subir archivo doc al servidor

Eso solo lo puedes saber tu, revisa en que directorio estas y de preferencia pasa una ruta absoluta desde la raiz del disco para que no tengas esos problemas.

Saludos.
  #12 (permalink)  
Antiguo 14/11/2011, 11:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir archivo doc al servidor

cierto, las rutas absolutas son mejores, también revisa si el directorio tiene permisos de escritura
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #13 (permalink)  
Antiguo 15/11/2011, 01:09
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Subir archivo doc al servidor

La ruta desde donde se ejecuta el código es
Código:
/httpdocs/empleo/Miespacio/funciones
Accediendo desde el ftp.

Querría llevar los archivos a un sitio "protegido". Aunque inicialmente me bastaría a
Código:
/httpdocs/empleo/Miespacio/curriculums
Esta última carpeta tiene privilegios 777.

¿Cómo lo especifico?
Gracias
  #14 (permalink)  
Antiguo 15/11/2011, 07:09
 
Fecha de Ingreso: noviembre-2011
Mensajes: 13
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Subir archivo doc al servidor

Hace unas semanas atras, yo escribir acerca de esto en mi blog. Te recomiendo que lo leas, para asi repasar el proceso de como subir un archivo al servidor.

http://www.jotorres.com/es/2011/10/simple-file-upload-in-php/

Espero que sea de ayuda.
  #15 (permalink)  
Antiguo 15/11/2011, 08:21
Avatar de besotico  
Fecha de Ingreso: junio-2008
Ubicación: Iquique, Chile, Chile
Mensajes: 70
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Subir archivo doc al servidor

un datillo, no pongas nada antes de session_start() :)
  #16 (permalink)  
Antiguo 15/11/2011, 09:38
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Subir archivo doc al servidor

Muchísmas gracias a todos........
por fín...
Muy bueno el blog, lo tendré en cuenta para futuras dudas

Etiquetas: doc, formulario, mysql, servidor, sql, tabla, 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 09:41.