Foros del Web » Programando para Internet » PHP »

No consigo hacer que la ruta funcione

Estas en el tema de No consigo hacer que la ruta funcione en el foro de PHP en Foros del Web. Hola a todos. Ante todo expresaros mi admiración y gratitud. Siempre que entro encuentro respuestas a mis dudas. El caso que tengo ahora me está ...
  #1 (permalink)  
Antiguo 02/04/2014, 09:30
Avatar de Brutusculus  
Fecha de Ingreso: abril-2014
Ubicación: Sevilla
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Pregunta No consigo hacer que la ruta funcione

Hola a todos.
Ante todo expresaros mi admiración y gratitud. Siempre que entro encuentro respuestas a mis dudas.
El caso que tengo ahora me está volviendo loco.
Desde una página los visitantes pueden subir fotos. Esta página crea en el servidor una carpeta cuyo nombre es un número que corresponde al cliente y crea una variable session con ese número.

$_SESSION['carpeta'] = $idped;
mkdir ($idped);

Otra página php sube la foto:

<?
session_start();
$carpeta= $_SESSION['carpeta'];
$uploaddir=$carpeta.'/';
$file = $uploaddir . basename($_FILES['uploadfile']['name']);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
echo "success";
} else {
echo "error ".$_FILES['uploadfile']['error']." --- ".$_FILES['uploadfile']['tmp_name']." %%% ".$file."($size)";
}
?>


Y no funciona

Sin embargo si pongo:

$uploaddir='4/';

Se guarda el archivo en la carpeta 4.

Creo que el error debe ser sencillo pero no soy capaz.
Muchas gracias.
  #2 (permalink)  
Antiguo 02/04/2014, 09:33
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: No consigo hacer que la ruta funcione

en las dos paginas partes con un <?php session_start(); ?>??

lo mas probable es que no se este guardando nada el la variable $_SESSION['carpeta']

saludos
  #3 (permalink)  
Antiguo 02/04/2014, 09:34
Avatar de Brutusculus  
Fecha de Ingreso: abril-2014
Ubicación: Sevilla
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: No consigo hacer que la ruta funcione

Gracias!!! Que velocidad!!!

Si, siempre comienzo con session_start();
  #4 (permalink)  
Antiguo 02/04/2014, 09:35
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: No consigo hacer que la ruta funcione

en este cogigo agrega un print

Cita:
<?
session_start();
//ver que la variable aparece en pantalla
echo $carpeta= $_SESSION['carpeta'];
$uploaddir=$carpeta.'/';
$file = $uploaddir . basename($_FILES['uploadfile']['name']);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
echo "success";
} else {
echo "error ".$_FILES['uploadfile']['error']." --- ".$_FILES['uploadfile']['tmp_name']." %%% ".$file."($size)";
}
?>
  #5 (permalink)  
Antiguo 02/04/2014, 09:36
Avatar de Brutusculus  
Fecha de Ingreso: abril-2014
Ubicación: Sevilla
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: No consigo hacer que la ruta funcione

He comprobado con echo si la variable es correcta y me devuelve correctamente. Pero no guarda el archivo en la carpeta.
  #6 (permalink)  
Antiguo 02/04/2014, 09:50
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: No consigo hacer que la ruta funcione

es un tema de permisos, creas la carpeta pero no le das los permisos de escritura.

cambia esta linea

mkdir ($idped);

por esta

mkdir($idped, 0777);

saludos
  #7 (permalink)  
Antiguo 02/04/2014, 09:57
Avatar de Brutusculus  
Fecha de Ingreso: abril-2014
Ubicación: Sevilla
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: No consigo hacer que la ruta funcione

Gracias Rigo
Lo he probado y nada. sigue igual.
  #8 (permalink)  
Antiguo 02/04/2014, 09:59
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: No consigo hacer que la ruta funcione

Cita:
Iniciado por Brutusculus Ver Mensaje
Gracias Rigo
Lo he probado y nada. sigue igual.
que tamaño tiene la foto que subes? controlas desde php.ini el tamaño maximo de upload?, el tamaño maximo por defecto de upload es de 2 mb.

saludos
  #9 (permalink)  
Antiguo 02/04/2014, 10:04
Avatar de Brutusculus  
Fecha de Ingreso: abril-2014
Ubicación: Sevilla
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: No consigo hacer que la ruta funcione

Ya lo comprobé, de hecho he subido fotos si le digo a la variable directamente que es 4/ por ejemplo.

$uploaddir = '4/'

funciona bien

si digo que:

$carpeta = 4;
$uploaddir = $carpeta.'/';

esto no funciona.
  #10 (permalink)  
Antiguo 02/04/2014, 10:15
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: No consigo hacer que la ruta funcione

Cita:
Iniciado por rigo_5834 Ver Mensaje
que tamaño tiene la foto que subes? controlas desde php.ini el tamaño maximo de upload?, el tamaño maximo por defecto de upload es de 2 mb.

saludos
para descartar hace esto.

Código PHP:
//agregar trim, para quitar espacios en blanco
$carpetatrim($_SESSION['carpeta']);
$uploaddir=$carpeta.'/';
$file $uploaddir basename($_FILES['uploadfile']['name']);
if (
move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) 
{
echo 
"success";
} else {
echo 
"error ".$_FILES['uploadfile']['error']." --- ".$_FILES['uploadfile']['tmp_name']." %%% ".$file."($size)";


y aca

Código PHP:
$_SESSION['carpeta'] = $idped;
mkdir (trim($idped), 0777); 
  #11 (permalink)  
Antiguo 02/04/2014, 10:20
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: No consigo hacer que la ruta funcione

El problema debe ser porque es un numero... Prueba con alguna de estas variantes para la ruta!

Código PHP:
Ver original
  1. $uploaddir = (string)$carpeta.'/';
  2. //o esta
  3. $uploaddir = "$carpeta/";

Aunque te recomiendo mejor que le coloques un prefijo a las carpetas mas el numero:
Código PHP:
Ver original
  1. $uploaddir = 'micarperta' . $carpeta . '/';
  2. //o asi
  3. $uploaddir = "micarperta$carpeta/";

Espero te sriva! =)
__________________
Ayudar a otros, es una de las mejores formas de aprender y ayudarse a si mismo! =)

>[Jheck]<
  #12 (permalink)  
Antiguo 02/04/2014, 10:21
Avatar de Brutusculus  
Fecha de Ingreso: abril-2014
Ubicación: Sevilla
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: No consigo hacer que la ruta funcione

Muahhhh

Nada. No hay manera. Toy desesperado. No es lógico.

Gracias Rigo.
  #13 (permalink)  
Antiguo 02/04/2014, 10:29
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: No consigo hacer que la ruta funcione

Cita:
Iniciado por Brutusculus Ver Mensaje
Muahhhh

Nada. No hay manera. Toy desesperado. No es lógico.

Gracias Rigo.
y la variable $idped son puros numeros?
  #14 (permalink)  
Antiguo 02/04/2014, 10:37
Avatar de Brutusculus  
Fecha de Ingreso: abril-2014
Ubicación: Sevilla
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: No consigo hacer que la ruta funcione

Probando con las posibilidades de jheckson no funciona.

Si comienzo dando una palabra a la variable en vez de un numero tampoco.

Pasando el número a string tampoco.

Gracias de verdad.
  #15 (permalink)  
Antiguo 02/04/2014, 10:49
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: No consigo hacer que la ruta funcione

Cita:
Iniciado por Brutusculus Ver Mensaje
Probando con las posibilidades de jheckson no funciona.

Si comienzo dando una palabra a la variable en vez de un numero tampoco.

Pasando el número a string tampoco.

Gracias de verdad.
jaja que extraño, cambia la funcion de upload por esta

Código PHP:
//agregar trim, para quitar espacios en blanco
$carpetatrim($_SESSION['carpeta']);
$uploaddir=$carpeta.'/';
$file $uploaddir basename($_FILES['uploadfile']['name']);
if (
copy($_FILES['uploadfile']['tmp_name'], $file)) 
{
echo 
"success";
} else {
echo 
"error ".$_FILES['uploadfile']['error']." --- ".$_FILES['uploadfile']['tmp_name']." %%% ".$file."($size)";

  #16 (permalink)  
Antiguo 02/04/2014, 14:46
Avatar de Brutusculus  
Fecha de Ingreso: abril-2014
Ubicación: Sevilla
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: No consigo hacer que la ruta funcione

No lo consigo.

Etiquetas: ruta, variable
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 00:07.