Foros del Web » Programando para Internet » PHP »

move_uploaded_file no escribe

Estas en el tema de move_uploaded_file no escribe en el foro de PHP en Foros del Web. hola, estoy subiendo una aplicacion web a un servidor de la universidad en el que cada alumno tenemos una carpeta dentro de un mismo directorio, ...
  #1 (permalink)  
Antiguo 25/08/2010, 13:34
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
move_uploaded_file no escribe

hola, estoy subiendo una aplicacion web a un servidor de la universidad en el que cada alumno tenemos una carpeta dentro de un mismo directorio, por lo q todos tenemos los mismos permisos (o eso supongo).

El caso es que esta funcion:

function guardarImagen($_FILES){

$directorio = $_SERVER['DOCUMENT_ROOT']."images/uploads/";

$nombre = $_FILES['imagen']['name'];
$tipo = $_FILES['imagen']['type'];
$tamano = $_FILES['imagen']['size'];

if (($_FILES['imagen']['name'] != "") && ($_FILES['imagen']['size'] != 0)){
$mover = move_uploaded_file($_FILES['imagen']['tmp_name'], $directorio.$nombre);
if(!$mover){
echo "no se ha copiado la imagen";
}
}
else{

$origen= $directorio.$nombre;
$nuevoNombre = "thumb".$nombre;
$destino = $directorio.$nuevoNombre;

if (redimensionar_imagen($origen, $tipo, $destino, 75, 125, 100) == '1'){
//borramos la imagen original
unlink($origen);
return $nuevoNombre;
}
else{
return '0';
}
}


}

siempre casca en el if de "move_uploaded_file". He comprobado previamente que el obsejo sea válido con "is_uploaded_file()" y siempre me ha dado TRUE.

¿detectais algún erorr? o ¿teneis idea de porque no pasa de ahi la función?

Decir que en local funciona perfectmente
  #2 (permalink)  
Antiguo 25/08/2010, 13:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 9 meses
Puntos: 55
Respuesta: move_uploaded_file no escribe

porque no pruebas con copy en ves de move_uploaded_file

Código PHP:
if(copy($_FILES['imagen']['tmp_name'], $directorio.$nombre)){
     echo 
"archivo copiado.";

  #3 (permalink)  
Antiguo 25/08/2010, 13:47
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: move_uploaded_file no escribe

Perdonar. Voy a poner las dos funciones de nuevo:

hola, estoy subiendo una aplicacion web a un servidor de la universidad en el que cada alumno tenemos una carpeta dentro de un mismo directorio, por lo q todos tenemos los mismos permisos (o eso supongo).

El caso es que estas funciones:

function guardarImagen($_FILES){

// Ruta donde se guardarán las imágenes
$directorio = $_SERVER['DOCUMENT_ROOT'].'/images/uploads/';

// Recibo los datos de la imagen
$nombre = $_FILES['imagen']['name'];
$tipo = $_FILES['imagen']['type'];
$tamano = $_FILES['imagen']['size'];

// Muevo la imagen desde su ubicación
// temporal al directorio definitivo
move_uploaded_file($_FILES['imagen']['tmp_name'],$directorio.$nombre);

$origen= $directorio.$nombre;
$nuevoNombre = "thumb".$nombre;
$destino = $directorio.$nuevoNombre;

if (redimensionar_imagen($origen, $tipo, $destino, 75, 125, 100) == '1'){
//borramos la imagen original
unlink($origen);

return $nuevoNombre;
}
else{
return '0';
}


}

function redimensionar_imagen($img_original, $tipo, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad){
// crear una imagen desde el original

$size = getimagesize($img_original);
$height = $size[1];
$width = $size[0];

if($tipo == "image/jpeg"){
$img = ImageCreateFromJPEG($img_original);
}
else if($tipo == "image/gif"){
$img = ImageCreateFromGIF($img_original);
}
else if($tipo == "image/png"){
$img = ImageCreateFromPNG($img_original);
}
else{
return '0';
}

// crear una imagen nueva
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva _altura);
// redimensiona la imagen original copiandola en la imagen
imagecopyresampled($thumb,$img,0,0,0,0,$img_nueva_ anchura,$img_nueva_altura, $width, $height);


// guardar la nueva imagen redimensionada donde indicia $img_nueva
if($tipo == "image/jpeg"){
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
}
else if($tipo == "image/gif"){
imageGIF($thumb,$img_nueva,$img_nueva_calidad);
}
else if($tipo == "image/png"){
ImagePNG($thumb,$img_nueva,$img_nueva_calidad);
}


ImageDestroy($img);
return '1';
}


Auún usando "copy" como "move_uploaded_file" en la carpeta definitiva no se guarda nada
  #4 (permalink)  
Antiguo 25/08/2010, 13:58
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: move_uploaded_file no escribe

¿Le diste permisos 777 a la carpeta destino?
  #5 (permalink)  
Antiguo 25/08/2010, 13:59
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: move_uploaded_file no escribe

Cita:
Iniciado por Vun Ver Mensaje
¿Le diste permisos 777 a la carpeta destino?
si..
  #6 (permalink)  
Antiguo 25/08/2010, 14:02
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: move_uploaded_file no escribe

hola

una pregunta dices que cada alumno tiene su propia carpeta en un mismo directorio no?

entonces en esta línea:

Código PHP:
$directorio $_SERVER['DOCUMENT_ROOT'].'/images/uploads/'
no falta el nombre de tu carpeta?...

si no es asi mil disculpas por mal entender tu explicación
  #7 (permalink)  
Antiguo 25/08/2010, 14:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: move_uploaded_file no escribe

Cita:
Iniciado por zapt142 Ver Mensaje
hola

una pregunta dices que cada alumno tiene su propia carpeta en un mismo directorio no?

entonces en esta línea:

Código PHP:
$directorio $_SERVER['DOCUMENT_ROOT'].'/images/uploads/'
no falta el nombre de tu carpeta?...

si no es asi mil disculpas por mal entender tu explicación
No, esa orden deberia ser = que localhost/images/uploads/
  #8 (permalink)  
Antiguo 25/08/2010, 15:26
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: move_uploaded_file no escribe

Haz un:

echo $_FILES['imagen']['tmp_name']."<br>";
echo $directorio.$nombre."<br>";

Y pega aqui el resultado
  #9 (permalink)  
Antiguo 25/08/2010, 15:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: move_uploaded_file no escribe

Cita:
Iniciado por Vun Ver Mensaje
Haz un:

echo $_FILES['imagen']['tmp_name']."<br>";
echo $directorio.$nombre."<br>";

Y pega aqui el resultado
/tmp/phpyRGcPc
/var/www/nisu/al/images/uploads/centurion.jpeg

Ok, la ruta no es correcta, voy a ver si lo soluciono
  #10 (permalink)  
Antiguo 25/08/2010, 16:01
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: move_uploaded_file no escribe

Cita:
Iniciado por paql Ver Mensaje
/tmp/phpyRGcPc
/var/www/nisu/al/images/uploads/centurion.jpeg

Ok, la ruta no es correcta, voy a ver si lo soluciono
Bien, me conecto por ssh a mi home del server. Hago un pwd y me devuelve:
Código:
home/alxxxxxx
entonces voy al script y asigno a $directorio la ruta:

Código:
$_SERVER['DOCUMENT_ROOT'].'/home/alxxxxxx/public_html/images/uploads/'
que se supone que es la ruta ya definitiva... pero sigue sin escribir nada
  #11 (permalink)  
Antiguo 25/08/2010, 17:00
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: move_uploaded_file no escribe

Cita:

Código:
$_SERVER['DOCUMENT_ROOT'].'/home/alxxxxxx/public_html/images/uploads/'
que se supone que es la ruta ya definitiva... pero sigue sin escribir nada
RESUELTO!! Tenía que cambiarle los permisos a la imagen una vez guardada, aunque me parece una burrada poner toda la ruta entera.... pero bueno...
  #12 (permalink)  
Antiguo 25/08/2010, 17:10
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: move_uploaded_file no escribe

Guay! ya sabes, cuando te 'atranques', empieza a sacar datos por pantalla, casi seguro que alguno esta mal. En este caso era otra cosa pero bueno... ^^

Etiquetas: escribir, imagenes, move_uploaded_file, subir, upload
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 11:01.