Foros del Web » Programando para Internet » PHP »

error move_uploaded_file

Estas en el tema de error move_uploaded_file en el foro de PHP en Foros del Web. Buenas!!! Tengo una aplicación web hecha en php que me permitía subir documentos en el servidor y en local me funcionaba perfectamente con un SO ...
  #1 (permalink)  
Antiguo 23/11/2009, 03:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 2
error move_uploaded_file

Buenas!!!

Tengo una aplicación web hecha en php que me permitía subir documentos en el servidor y en local me funcionaba perfectamente con un SO windows.

Ahora me han dado un servidor en linux(no se cual, solo que es linux), y no me deja realizar el move_uploaded_file...

El error que me da es el siguiente:

Warning: move_uploaded_file(home/copa/public_html/Documentos/ManualPlacaBase.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/copa/public_html/NuevoDoc.php on line 28

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpRPvmaw' to 'home/copa/public_html/Documentos/ManualPlacaBase.pdf' in /home/copa/public_html/NuevoDoc.php on line 28

He estado mirando también en la página de php_net y dicen que podría ser por los permisos pero ya los tengo cambiados y tambien hago chmod del archivo temporal por si acaso... NO se que puede ser y ando un poco perdido, a ver si alguien podría echarme una mano por favor. Adjunto el código, por si acaso:

este es el archivo donde creo el formularoi que pide el documento
Código PHP:
 <h3Subir un nuevo documento: </h3>
   <
br
   <
h4 align="middle">  INTRODUZCA LOS DATOS: </H4>
    <
form ENCTYPE="multipart/form-data" name='formulario' method=POST action='NuevoDoc.php'>   
        <
table width='70%' border='0' align='center'>
            <
tr> <td valign='top'><strong>Tipo</strong></td>
                <
td valign='top'> <select name='Tipo'id='Tipo'> <option value="txt" selected="selected">documento de texto</option>
                                  <
option value="pdf" >documento pdf</option> <option value="word">documento word</option>
                                  <
option value="html" >documento html</option> <option value="odt">documento open office</option>
                                  <
option value="ppt" >Presentacion</option> <option value="pweb">Pagina web</option>
                                  <
option value="grafico">documento gráfico u imagen </option
                </
td>
            </
tr>
            <
tr> <td valign='top'><strong>Nombre</strong></td>
                 <
td valign='top'> <p align='left'>
                    <
input name='nombre' type='file' size="50">
                 </
td>
            </
tr>
        </
table>
        <
p align='center'> <input type='submit' name='Submit' value='Subir'> <input type='reset' name='Submit2' value='Limpiar'> </p>
    </
form

Y este donde trato el arvchivo temporal creado
Código PHP:
    $link mysql_connect ("localhost""proyecto""barneto");
    
    if (!
$link)
        echo(
"ERROR");
    else{
    if (!
mysql_select_db("Documentos"$link))
        echo(
"ERROR");
    else{
            
$destino="home/copa/public_html/Documentos/";
      
chmod($_FILES["nombre"]["tmp_name"], 0777);
      if (
move_uploaded_file($_FILES["nombre"]["tmp_name"],$destino.$_FILES["nombre"]["name"])){
                
//
                
$nombre=$_FILES["nombre"]["name"];
                echo 
$nombre;
                
$tipo=$_POST["Tipo"];
                
$Consulta ="insert into Docs values('".$nombre."','".$tipo."')";
                
$resultado mysql_query($Consulta$link);
                            echo (
"<script>");
                echo (
" if (confirm('Subido con exito')) history.back(); 
                                            else history.back(); "
);
                echo (
"</script>");
        
    
      }
      else{
            echo (
"<script>");
            echo (
" alert('No se ha subido el documento') history.back(); ");
            echo (
"</script>");
      }
            
    }
    } 

Muchas gracias a todos!!!
  #2 (permalink)  
Antiguo 23/11/2009, 04:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 80
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: error move_uploaded_file

Pueden ser dos cosas, comprueba bien comprobado que tienes bien dados los permisos en las carpetas porque es lo mas problema, tienes que darle permisos a todas las carpetas en las que hace el move y las sube, la otra opción puede ser la versión de php, porque ha salido el php6 y la verdad hay bastantes cosas que no las coge muy bien o la otra que en el php.ini tengas inabilitada la opción de subir archivos.


Un saludo.
  #3 (permalink)  
Antiguo 23/11/2009, 06:56
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: error move_uploaded_file

Cita:
$destino="home/copa/public_html/Documentos/";
Hacele un is_dir($destino) a ver que te devuelve. Esta bien dada la ruta?


Otra cosa: si "documentos" estuviera escrito en minusculas, a windows no le importaria pero a tu servidor si.

Y una mas:
Donde esta tu script? Fuera de public_html? COmo es eso? public_html no es directorio "raiz" en tu servidor?
  #4 (permalink)  
Antiguo 23/11/2009, 07:19
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: error move_uploaded_file

El error te está diciendo que no encuentra el archivo o directorio ¿existe realmente el directorio Documentos? recierda que linux hace distinción entre mayúsculas y minúsculas. Lo que antes para windows era lo mismo (Documentos y documentos) para linux no lo es
  #5 (permalink)  
Antiguo 23/11/2009, 16:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: error move_uploaded_file

La ruta está correcta despues de comprobarla varias veces, y le he dado a todas las carpetas los permisos correspondientes,ç. Mirare el php.ini que es lo que me queda por ver.

Gracias a todos.
  #6 (permalink)  
Antiguo 23/11/2009, 16:35
 
Fecha de Ingreso: mayo-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: error move_uploaded_file

Ah!! Y mi script si está dentro de public_html, pero no es raiz ya que hay algunos usuarios más con sus correspondientes public_html.
  #7 (permalink)  
Antiguo 23/11/2009, 17:00
 
Fecha de Ingreso: enero-2008
Mensajes: 75
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: error move_uploaded_file

Colega
prueba solo colocando

Código php:
Ver original
  1. $destino="Documentos/";



pd: ojito ojito trata de nombrar tus carpetas en minusculas.
  #8 (permalink)  
Antiguo 24/11/2009, 05:06
 
Fecha de Ingreso: mayo-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: error move_uploaded_file

Bueno, ya lo he solucionado...

El problema era que yo colocaba rutas completas desde el punto de vista del sistema de ficheros y el navegador juega con rutas relativas..... Quizá le venga bien a alguien más...

La ruta correcta era poner:

Código PHP:
$destino="./Documentos" 
muy parecido a lo que decía jesuko.

Muchas gracias a todos ;)
  #9 (permalink)  
Antiguo 24/11/2009, 05:09
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: error move_uploaded_file

Cita:
Iniciado por joseAlber Ver Mensaje
El problema era que yo colocaba rutas completas desde el punto de vista del sistema de ficheros y el navegador juega con rutas relativas..... Quizá le venga bien a alguien más...
Me alegra que lo hayas resuelto.

No obstante, el navegador no influye en el tema de las rutas que use php. Eso es cosa del servidor, que es donde se ejecuta PHP.

Y es correcto poner "documento gráfico o imagen" no "documento gráfico u imagen".
  #10 (permalink)  
Antiguo 24/11/2009, 16:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: error move_uploaded_file

Cita:
Iniciado por Bonez Ver Mensaje
Me alegra que lo hayas resuelto.

No obstante, el navegador no influye en el tema de las rutas que use php. Eso es cosa del servidor, que es donde se ejecuta PHP.

Y es correcto poner "documento gráfico o imagen" no "documento gráfico u imagen".
Jajaja!!! OK, Lo cambiaré!!
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 15:56.