Comunidad de diseño web y desarrollo en internet online

Subir archivos a una carpeta predefinida por un query

Citar            
MensajeEscrito el 27 Ene 2008 09:46 pm
HOLA nuevamente vengo enbusca de su sabiduria, ahora me tope con un peque;o detalle, estoy en la parte se subir archivos a mi servidor eso no es ningun problema el chiste es el siguiente...

<?php
/*seleccionamos el contenido de el campo FOLDER de la tabla artista para meterlo en un variable y utilizar esa varible para insertar las fotos del artista en su carpeta correspondiente, cabe mencionar que dicha carpeta se crea al momento de agregar un nuevo artista
*/
$sel_folder=mysql_query("SELECT folder FROM artistas
WHERE id = ".$_GET['ar']." ");
$most_folder= mysql_fetch_array($sel_folder);


if($_POST['action']== "upload") {[/b]

// obtenemos los datos del archivo del thum
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$destino = 'imgs/'.$most_folder.'''.$archivo; <--- AQUI ES MI DETALLE no se como hacer para que en esta parte del codigo se vea reflejado el query , ahora si que ya lo puse comillas simples, dobles con puntos sin puntos, hice manicure, pedicure, un curita jajajajajajaja y nada... si utilizo asi el codigo si funciona si inserta las imagenes pero en raiz de IMGS no dentro de la carpeta que quiero. me gustaria abogar a su sabidura para ver que mas puedo hacer... y si esto les sirve a alguien mas con todo gusto... este proceso se repite en el siguiente fragmento de codigo



// obtenemos los datos del archivo de la imagen grande
$tamanos = $_FILES["archivos"]['size'];
$tipos = $_FILES["archivos"]['type'];
$archivos = $_FILES["archivos"]['name'];
$destinos = 'imgs/'.$most_folder.''.$archivos;




// hacemas la cadena de la query de insert
$sql = "INSERT INTO archivos
VALUES (
'',
'".$_POST['titulo']."',
'".$_POST['titulo2']."',
'".$_POST['descripcion']."',
'".$_POST['descripcion2']."',
'".date("Y-m-d")."',
'". $destino."',
'". $destinos."',
'".$_POST['id_artista']."'
)";

// ejecutamos la query
mysql_query($sql) or die(mysql_error());

//$prefijo = substr(md5(uniqid(rand())),0,6);

header("Location:admin_gral.php?ar=".$_GET['ar']."");

if ($archivo != "") {
// guardamos el archivo a la carpeta files
if (copy($_FILES['archivo']['tmp_name'],$destino)&&copy($_FILES['archivos']['tmp_name'],$destinos)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
echo 'no jala';
}
}
?>

Por Mike Morales

62 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 28 Ene 2008 01:54 am
Creo que funcionaría si haces esto, reemplaza:

Código :

$sel_folder=mysql_query("SELECT folder FROM artistas
WHERE id = ".$_GET['ar']." ");
$most_folder= mysql_fetch_array($sel_folder);

por:

Código :

$sel_folder=mysql_query("SELECT folder FROM artistas
WHERE id = ".$_GET['ar']." ");
while($row = mysql_fetch_array($sel_folder)) {
$most_folder = row['folder'];
}

Por eZakto

43 de clabLevel



Genero:Masculino  

Salta, Argentina.

firefox
Citar            
MensajeEscrito el 28 Ene 2008 04:54 am
que onda viejo , gracias por el tip pero fijate que lo que hace es que lepone el nombre de la carpeta antes del archivo jejeje no la inserta dentro de la carpeta que le corresponde...

Por Mike Morales

62 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 28 Ene 2008 07:53 pm

Código :

$destinos = 'imgs/'.$most_folder.'/'.$archivos;


Con una diagonal se resuelve tu problema.


Por otro lado, te recomiendo por seguridad validar los parametros que recibes por get, y para carpetas, que el folder exista, y no sea uno de nivel superior.

saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 28 Ene 2008 09:18 pm
muchas gracias solo me faltaba una diagonla gracias a los dos...!!

Por Mike Morales

62 de clabLevel



Genero:Masculino  

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.