jes_master Posted October 28, 2012 Report Share Posted October 28, 2012 (edited) Buenas tardes/noches/dias, les explico que sucede. Funcion : Estoy desarrollando un pequeño sistema donde los usuarios crean su cuenta, se logean y pueden subir fotos. Problema: El sistema de login y registro funciona perfecto, el problema es que no logro que el "subidor de imágenes cree una carpeta con el nombre del "usuario" logeado. y que visualice la carpeta solo el usuario logeado" ( mi problema es que las otras cuentas ven la carpeta y las fotos ya que no logro crear una carpeta para cada usuario). Código del uploader y el visualizado de imágenes. <form action="" method="post" enctype="multipart/form-data"> <label for="file">Sube un archivo en formato PNG/JPEG no superior a 550 kb:</label> <input type="file" name="archivo" id="archivo" /> <input type="submit" name="boton" value="Subir" /> </form> <div class="resultado"> <?php if(isset($_POST['boton'])){ // Hacemos una condicion en la que solo permitiremos que se suban imagenes y que sean menores a550 KB if ((($_FILES["archivo"]["type"] == "image/gif") || ($_FILES["archivo"]["type"] == "image/jpeg") || ($_FILES["archivo"]["type"] == "image/png") || ($_FILES["archivo"]["type"] == "image/pjpeg")) && ($_FILES["archivo"]["size"] < 550000)) { //Si es que hubo un error en la subida, mostrarlo, de la variable $_FILES podemos extraer el valor de [error], que almacena un valor booleano (1 o 0). if ($_FILES["archivo"]["error"] > 0) { echo $_FILES["archivo"]["error"] . "<br />"; } else { // Si no hubo ningun error, hacemos otra condicion para asegurarnos que el archivo no sea repetido if (file_exists("archivos/" . $_FILES["archivo"]["name"])) { echo $_FILES["archivo"]["name"] . " ya existe. "; } else { // Si no es un archivo repetido y no hubo ningun error, procedemos a subir a la carpeta /archivos, seguido de eso mostramos la imagen subida move_uploaded_file($_FILES["archivo"]["tmp_name"], "archivos/" . $_FILES["archivo"]["name"]); echo "Archivo Subido <br />"; echo "<img src='archivos/".$_FILES["archivo"]["name"]."' />"; } } } else { // Si el usuario intenta subir algo que no es una imagen o una imagen que pesa mas de 550 KB mostramos este mensaje echo "Archivo no permitido, posiblemente pesa mas de 550kb o tiene un formato no aceptado"; } } ?> </div> <div style="width:50%;"> <?php $dir='Mangas/'; $images = glob("$dir{*.gif,*.jpg,*.png}", GLOB_BRACE); foreach($images as $v){ echo '<img src="'.$v.'" border="1" style="width:110px;float:left;margin:10px;" />'; } ?> </div> No se si les sirva este dato pero la estructura de la base de datos que uso para logear los usuarios es así. -- Estructura de tabla para la tabla `usuarios` -- CREATE TABLE `usuarios` ( `ID` int(9) unsigned NOT NULL auto_increment, `username` varchar(180) default NULL, `password` varchar(180) default NULL, `email` varchar(180) default NULL, `id_extreme` varchar(180) default NULL, PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ; Bueno en resumen el problema es que no logro que la carpeta donde se guarde la foto tenga el mismo nombre que el usuario logeado y que el visualziador haga lo mismo muestre la carpeta del usuario logeado.. les dejo una demo de como es mas omenos.http://portal.tuzonaotaku.com usuario democlave demo De ante mano muchas gracias, busque información pero falle repetidas veces, si pueden dar documentacion o ayudarme seria perfecto. (si faltan mas datos me avisan) Edited October 28, 2012 by jes_master Link to comment Share on other sites More sharing options...
RALCN Posted October 28, 2012 Report Share Posted October 28, 2012 (edited) No te recomiendo crear una carpeta por cada usuario, si no, asignar a cada foto subida, el ID del usuario, algo como IMG_(ID_USUARIO)_FOTO01IMG_(ID_USUARIO)_FOTO02IMG_(ID_USUARIO)_FOTO03 etc... si no, te quedará gigantesco el sitio. Luego para cada usuario, las llamas mediante su ID onda colocasIMG src = "IMG_<? echo id_usuario; (EXtraido de la BD, donde el usuario sea igual al que tiene iniciada la session?>_FOTO03.ext" etc... te dejaré una web de un amigo, donde explica como subir fotografias, y también te deja una class en php, la cual es ponerla en tu servidor, y aplicarla donde la necesites (es super facil de usar y contiene un tutorial). http://alvarezriquel...rvidor-con-php/ Ahora, si insistes en crear la carpeta, lo que hace php, si no existe la carpeta, la crea solo. Por lo que antes de la foto subida, deberías mandarle por ejemplo /imagenes_usuarios/nombre_usuario/la foto donde nombre_usuario lo extraes de la BD. y PHP debería crearla solo. Edited October 28, 2012 by RALCN Link to comment Share on other sites More sharing options...
jes_master Posted October 29, 2012 Author Report Share Posted October 29, 2012 vale wn te pasaste , entendi perfectamente todo muchas gracias por el tiempo :D saludos se va a fav. :D Link to comment Share on other sites More sharing options...
AshWilliams Posted October 29, 2012 Report Share Posted October 29, 2012 Duda solucionada....se procede al cierre ;) Saludos :krider: Link to comment Share on other sites More sharing options...
Recommended Posts