Foros del Web » Programando para Internet » PHP »

error al subir ficheros

Estas en el tema de error al subir ficheros en el foro de PHP en Foros del Web. Buenas, estoy tratando de hacer un sistema para subir imagenes. He logrado que me cree en la carpeta imagenes una carpeta para el registro seleccionado ...
  #1 (permalink)  
Antiguo 26/03/2011, 04:19
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
error al subir ficheros

Buenas,
estoy tratando de hacer un sistema para subir imagenes. He logrado que me cree en la carpeta imagenes una carpeta para el registro seleccionado en el formulario y parece que el script de subir imagenes funciona (al menos verifica las condiciones), pero en la consola de PHP me da el siguiente error:

[26-Mar-2011 11:14:21] PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/Applications/MAMP/tmp/php/phpZufP40' to 'coches/gallery/bbbbbbbbbbb/15.jpg' in /Applications/MAMP/htdocs/coches/gallery/2.php on line 27

el script del formulario es:
Código PHP:
<?
session_start 
();
//conexion a la bbdd
include ('../scripts/conn.php');
?>
<html>
<head>
<link href="/coches/css/formularios.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="content">
    <form method="post" name="fotos" action="/coches/gallery/2.php" enctype="multipart/form-data">
        <label>Seleccione vehiculo</label>
        <div class="dash-in">
        <?    $date date ("Y-m-d");
             
$vin "SELECT * FROM dam_vehiculos WHERE v_fecha = '$date' ORDER BY v_id";
            
$consulta mysql_query ($vin) or die (mysql_error ()); 
        
?> 
        <select name="vin"> 
           <? while ($rows=mysql_fetch_array($consulta)) { ?> 
                <option value="<?php echo $rows["v_vin"]; ?>"><?php echo $rows["v_vin"]; ?></option> 
              <? ?> 
        </select>
        </div>
        <label>Seleccionar fotografia</label>
        <div class="dash-in">
        <input type="file" name="foto">
        </div>
        <label>Comentario</label>
        <div class="dash-in">
        <input type="text" name="comentario" size="100">
        </div>
        <input name="submit" type="submit" value="Agregar">
    </form>
</div>
</body>
</html>
y el script que sube la imagen es:
Código PHP:
<? 
session_start 
();

//conexion a la bbdd
include ('../scripts/conn.php');

//recojemos los valores del formulario
$vin $_POST["vin"];
$comentario $_POST["comentario"];
$dam1 $_FILES['foto']['name'];

//creamos el directorio en el servidor
mkdir ($vin0777);
$ruta "coches/gallery/$vin/";
$ruta $ruta basename($_FILES['foto']['name']);

//agregamos ls datos a la tabla fotos
$agregar "INSERT INTO fotos (fotos_vin,
                                fotos_imagen,
                                fotos_descripcion) VALUES (
                                '$vin','$ruta','$comentario')"
;
mysql_query ($agregar) or die (mysql_error());

//subimos la imagen
if (is_uploaded_file ($_FILES['foto']['tmp_name'])){
        
move_uploaded_file($_FILES['foto']['tmp_name'], $ruta);
        echo 
" se agrego el fichero en el servidor";
} else {
    echo 
"No funciono";}

?>
lo que no entiendo es que, si valida la condicion y verifica que un archivo se ha subido (o al menos eso creo yo), por que no lo mueve a la carpeta de destino??
  #2 (permalink)  
Antiguo 26/03/2011, 05:01
 
Fecha de Ingreso: julio-2010
Ubicación: Galicia
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: error al subir ficheros

Prueba directamente:
Código PHP:
Ver original
  1. if (move_uploaded_file($_FILES['foto']['tmp_name'], $ruta))
  2. {
  3.         echo " se agrego el fichero en el servidor";
  4. } else {
  5.     echo "No funciono";}
Así lo hice yo y funciona, saludos! ^^
__________________
Si algo te sirve de ayuda no dudes en dar Karma, a tí no te cuesta nada y a mi me haces feliz =D
  #3 (permalink)  
Antiguo 26/03/2011, 05:29
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: error al subir ficheros

Ya lo he intentando, pero tampoco funciona. He estado problando cargando el script en el hosting que tengo, y tampoco funciona. Pero si despues de que me genere la carpeta, a esta carpeta, le cambio los permisos a "permitir todo" si que me sube el fichero.

Como hago para hacerlo en local???
pensaba que el mkdir ($vin, 0777); seria suficiente...

Última edición por floog; 26/03/2011 a las 05:29 Razón: error en el mkdir
  #4 (permalink)  
Antiguo 26/03/2011, 07:22
 
Fecha de Ingreso: julio-2010
Ubicación: Galicia
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: error al subir ficheros

Prueba añadiendo las comillas al directorio, a ver, mkdir("$vin",0777), a ver si así funciona! ^^ saludos!
__________________
Si algo te sirve de ayuda no dudes en dar Karma, a tí no te cuesta nada y a mi me haces feliz =D
  #5 (permalink)  
Antiguo 27/03/2011, 16:19
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: error al subir ficheros

He probado lo que me decías y sigue sin funcionar. También he probado el escrito en mi histin y funciona: lo modifico para que suba imágenes a una carpeta seleccionada, lo cual consego, tras modificar los permisos de la carpeta manualmente. En cambio si la carpeta la genera de forma automaica el script, ni puedo cambiar los permisos de la carpeta noble sube la imagen.
Alguien sabe como resolver esto??
  #6 (permalink)  
Antiguo 27/03/2011, 21:42
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: error al subir ficheros

ve si la ruta es REALMENTE correcta. Ya que puede ser eso o bien que galery no tenga permisos 777 por ende no crea la carpeta, primero que todo ve si te funciona el mkdir que te devuele
Código PHP:
Ver original
  1. if(mkdir($var,0777)){
  2.    echo 'creada';
  3. }else{
  4.   echo 'mal';
  5. }
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.

Etiquetas: ficheros
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 20:42.