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 ($vin, 0777);
$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??