Autor Tema: publicar imagen guardada en el espacio  (Leído 2304 veces)

Desconectado dunkelheit

  • PHPerit@
  • *
  • Mensajes: 26
  • Karma: 0
    • Ver Perfil
publicar imagen guardada en el espacio
« en: 04 de Septiembre de 2007, 05:38:29 am »
holaz miren tengo la forma  poder subir las imagenes a una carpeta en mi servidor pero kisiera saber como hacer para q cada usuario salga su imagen  y tmb el tamaño de la imagen poderlo establecer para q sea un mismo tamaño!!!
este es mi poagina dono kiero poner ahi tmb esta dond hago el upload , arriba del upload kisiera poner la imagen subida ayuden!!!!

***************************************
<?php



   
   /*Configuración
   /Carpeta donde se guardarán los ficheros*/
   $carp="subidos";
   //Tamaño máximo permitido en MB
   $tmax=2;
   //Extensiones permitidas sin .
   $extensionesPermitidas=array("jpg", "gif", "bmp","png");
   /*/*/
   //Se llaman a las variables enviadas por el formulario
      $imagen = $_POST['fichero'];
      $insertar = $_POST['Submit'];
      //si el formulario ha sido enviado, se continua
      if(isset($insertar))
      {
      //se llama al interruptor y se inicializa
         $copiarFichero = false;
         //se comprueba la copia del fichero
         if(is_uploaded_file($_FILES['fichero']['tmp_name']))
         {
         //se comprueba la existencia del directorio ingresado
            $nombreDirectorio = $carp."/";
            /*
            /Se ingresa el simbolo @ para eliminar cualquier posibilidad
            /de que el PHP suelte error en pantalla y dentenga la ejecución
            /del script
            */
            if(!is_dir($nombreDirectorio))
            {
            //si el directorio no existe entonces se crea
               @mkdir($nombreDirectorio);
            }
            //se establece el nombre del fichero y se cambia el valor del interruptor
            $nombreFichero = $_FILES['fichero']['name'];
            $copiarFichero = true;
            $nombreCompleto = $nombreDirectorio . $nombreFichero;
            //si el archivo existe entonces se le cambia el nombre por un id unico
            if (is_file($nombreCompleto))
            {
               $idUnico = time();
               $nombreFichero = $idUnico . "-" . $nombreFichero;
            }
            
         }
      }
      //si se copio el archivo entonces se le mueve a la carpeta antes configurada
      if ($copiarFichero)
      {
         move_uploaded_file($_FILES['fichero']['tmp_name'],
         $nombreDirectorio . $nombreFichero);
         //Se guarda el tamaño del fichero subido
         $size=filesize($nombreDirectorio . $nombreFichero)/pow(1024,2);
         //Se verifica si el tamaño de fichero excede el establecido
         if($size>=$tmax)
         {
         //si cumple la condicion entonces se elimina, para ello antes se cambian los permisos
            borrarFichero($nombreDirectorio . $nombreFichero);
            $mensaje['tamano'] = '<p class="Estilo4">Archivo muy grande, no pudo ser subido</p>';
            $error=true;
         }
         else
         {
         //se muestra en pantalla el enlace con el fichero
            $mensaje['tamano'] = '<p class="Estilo4">El fichero: '.'<a href="'
            .$nombreDirectorio .$nombreFichero .'" target="_blank" >'.$nombreFichero.
            '</a> ha sido subido con éxito. Tamaño: '.round($size, 2)."Mb</p>";
            $error=false;
         }
         //se obtiene la extensión del archivo subido
            $extsubido=substr($nombreDirectorio . $nombreFichero,
            strlen($nombreDirectorio.$nombreFichero)-3, strlen($nombreDirectorio .
            $nombreFichero));
            $contador=false;
            for($i=0; $i<count($extensionesPermitidas); $i++)
            {
               //si no está permitido el archivo, se elimina
               if($extsubido==$extensionesPermitidas[$i])
               {
                  $contador=true;
               }
            }
            if(!$contador)
            {
               borrarFichero($nombreDirectorio.$nombreFichero);
               $mensaje['extension'] = '<p class="Estilo4">Archivo no permitido</p>';
               if(!$error)
               {
                  $mensaje['tamano']="";
               }
               $error=true;
            }
      }
      
      function borrarFichero($ruta)
      {
            @chmod($ruta, 0777);
            @unlink($ruta);
      }
   
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript">
//Se valida que el campo de fichero no esté vacio
   function validar(form1)
   {
      if(document.form1.fichero.value.length==0)
      {
         alert("¡No has seleccionado ningun archivo!");
         return false;
      }
      return true;
   }
</script>
<title>Subir ficheros - por: José Luis Yapur Vallejos</title>
<style type="text/css">
.Estilo4 {font-family: Arial, Helvetica, sans-serif}
.Estilo5 {
   color: #FFFFFF;
   font-size: 12px;
}
body {
   background-color: #000000;
}
</style>
</head>

<body>

<p align="center"><img src="img/img_usuar.png" alt="" width="472" height="59" /></p>
<table width="600" height="210" border="0" align="center" cellpadding="1" cellspacing="1">
  <tr>
    <td width="330" height="155"><p></p>
      <p></p>
      <p></p>
      <p></p>
      <p></p>
      <p></p>
      <p></p>
      <p></p>
      <p></p>
      <form action="<?php echo $_SERVER['../PHP_SELF'] ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <p class="Estilo4">
    <span class="Estilo5">Seleccione el fichero a subir y luego haga clic en aceptar </span><br>
    <input type="file" size="40" name="fichero" />
    <br>
    <input type="submit" name="Submit" value="Enviar" onClick="return validar()"/>
  </p>
  </form>&nbsp;
  <?php
   if($error)
   {
   $a='<p><b>Su archivo no pudo ser subido por las siguientes razones:</b></p>';
   }
   echo $a.$mensaje['tamano'].$mensaje['extension'];
?></td>
    <td width="263">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>

Comunidad PHPeros

publicar imagen guardada en el espacio
« en: 04 de Septiembre de 2007, 05:38:29 am »

Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #1 en: 05 de Septiembre de 2007, 15:03:04 pm »
Buenas,

He visto que pones

$_FILES["archivo"];

Te aconsejo que pongas

$HTTP_POST_FILES["archivo"];

|---------> <---------|

Respondiendo a tu duda, te digo que creo que se haría con alguna función de librería GD, que no se me da muy bien, TLX & Naveda seguro que te pueden ayudar :)

Saludos :P
Sin Firma me haces una? :P

Desconectado dunkelheit

  • PHPerit@
  • *
  • Mensajes: 26
  • Karma: 0
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #2 en: 08 de Septiembre de 2007, 03:22:36 am »
Umhh no hay nadie q me ayude waaa, quisiera ver mi imagen de perfil de un usuario

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #3 en: 08 de Septiembre de 2007, 09:50:08 am »
Yo te ayudaria pero es que no entendi nada...
Lee mi firma y pon de nuevo la duda.
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado dunkelheit

  • PHPerit@
  • *
  • Mensajes: 26
  • Karma: 0
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #4 en: 09 de Septiembre de 2007, 03:04:07 am »
si creo q ni yo me entenderia jeje xD, mira hize una pagina ya hize el registro y todo, umhh digamos cree la pagina de perfil de usuario y quisiera saber como publicar la imagen que e insertado con un formulario (digamos mi foto), digamos a la derecha estan mis datos (nombre, apellido, edad, etc) y deberia estar mi foto y abajo el formulario como para insertar o cambiar de foto de usuario,

digamos este el el codigo q tengo como para enviar la imagen a mi server

********************************************************************
<?php require_once('Connections/klanbas.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$colname_usuario = "-1";
if (isset($_SESSION['MM_Username'])) {
  $colname_usuario = $_SESSION['MM_Username'];
}
mysql_select_db($database_klanbas, $klanbas);
$query_usuario = sprintf("SELECT * FROM comuna WHERE usuario = %s", GetSQLValueString($colname_usuario, "text"));
$usuario = mysql_query($query_usuario, $klanbas) or die(mysql_error());
$row_usuario = mysql_fetch_assoc($usuario);
$totalRows_usuario = mysql_num_rows($usuario);
?><!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<title>Galería Dinámica - PHP con Dreamweaver</title>
<?php

//Ruta donde guardamos las imágenes
$ruta_miniaturas = "imagenes/mini";
$ruta_original = "imagenes";

//El ancho de la miniatura
$ancho_miniatura = 150;


//Extensiones que permitimos
$extensiones = array(".gif",".jpg",".png",".jpeg",".bmp");


//Necesitamos permisos de escritura
if (!is_writeable($ruta_miniaturas)){
   die ("Error: El directorio <b>($ruta_miniaturas)</b> no permite escritura");
}
if (!is_writeable($ruta_original)){
    die ("Error: El directorio <b>($ruta_original)</b> no permite escritura");
}

//Si se envio el form...
if (isset($_POST['imagen'])){

       $file_type = $_FILES['imgfile']['type'];
       $file_name = $_FILES['imgfile']['name'];
       $file_size = $_FILES['imgfile']['size'];
       $file_tmp = $_FILES['imgfile']['tmp_name'];

       //Chequeamos que se haya seleccionado un archivo
       if(!is_uploaded_file($file_tmp)){
          echo "Error: Por favor elegir una imagen para subir!. <br><a href=\"$_SERVER[PHP_SELF]\">Volver</a>";
          exit(); //Cortamos el código despues del error
       }
       //Chequeamos la extension
       $ext = strrchr($file_name,'.');
       $ext = strtolower($ext);
       if (!in_array($ext,$extensiones)) {
          echo "Extension no permitida.  <br><a href=\"$_SERVER[PHP_SELF]\">Volver</a>";
          exit();
       }
       //Tomamos la extension
       $getExt = explode ('.', $file_name);
       $file_ext = $getExt[count($getExt)-1];

     
       $ThumbWidth = $ancho_miniatura;

       //buscamos la funcion segun la imagen
       if($file_size){
          if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){
               $nueva_imagen = imagecreatefromjpeg($file_tmp);
           }elseif($file_type == "image/x-png" || $file_type == "image/png"){
               $nueva_imagen = imagecreatefrompng($file_tmp);
           }elseif($file_type == "image/gif"){
               $nueva_imagen = imagecreatefromgif($file_tmp);
           }
           //Chequeamos el ancho y el alto para mantener la relacion de aspecto
           list($width, $height) = getimagesize($file_tmp);
           $imgratio=$width/$height;
           if ($imgratio>1){
              $nuevo_ancho = $ThumbWidth;
              $nuevo_alto = $ThumbWidth/$imgratio;
           }else{
                 $nuevo_alto = $ThumbWidth;
                 $nuevo_ancho = $ThumbWidth*$imgratio;
           }
           
           //Genramos un número al azar de 5 cífras
           
           $rand = rand(0,99999);
           
           //funcion para redimensionar
           if (function_exists(imagecreatetruecolor)){
           $redimensionada = imagecreatetruecolor($nuevo_ancho,$nuevo_alto);
           }else{
                 die("Error: Es necesario tener galería GD2 para que funcione");
           }
           imagecopyresized($redimensionada, $nueva_imagen, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $width, $height);
           
           $nombre_nuevaimg = $rand.".".$file_ext;
         //guardamos la imagen
           ImageJpeg ($redimensionada,"$ruta_miniaturas/$nombre_nuevaimg", 100);
           ImageDestroy ($redimensionada);
           ImageDestroy ($nueva_imagen);
           
       }

        //Subimos la imagen original
        move_uploaded_file ($file_tmp, "$ruta_original/$nombre_nuevaimg");

   

}else{ //si no se envio la imágen por el form...
?>


<? }?>
</body>
<style type="text/css">
<!--
.Estilo1 {color: #CCCCCC}
.Estilo2 {font-family: Georgia, "Times New Roman", Times, serif}
.Estilo4 {font-size: 16px}
.Estilo5 {color: #FF0000}
-->
</style>
<p><br>
</p>
<table width="602" border="0" align="center" cellpadding="1" cellspacing="1">
  <tr>
    <td width="229" height="187"> <div align="center">
      <?
    echo "<br> <img src=\"$ruta_miniaturas/$nombre_nuevaimg\"/>";?>
    </div></td>
    <td width="366" valign="top"><div align="center"><?php echo $row_usuario['usuario']; ?></div>
      <br>
<table width="319" border="0" align="center" cellpadding="1" cellspacing="1">
        <tr>
          <td width="152"><div align="left" class="Estilo24 Estilo1 Estilo2 Estilo4"><span class="Estilo8">Nombre:</span></div></td>
          <td width="135"><div align="left"><span class="Estilo5"><?php echo ucfirst($row_usuario['nombre']); ?></span></div></td>
        </tr>
        <tr>
          <td><div align="left" class="Estilo24 Estilo1 Estilo2 Estilo4"><span class="Estilo8">Apellidos:</span></div></td>
          <td><div align="left"><span class="Estilo5"><?php echo ucfirst($row_usuario['apellido']); ?></span></div></td>
        </tr>
        <tr>
          <td><div align="left" class="Estilo24 Estilo1 Estilo2 Estilo4"><span class="Estilo8">Fecha de Nacimiento:</span></div></td>
          <td><div align="left"><span class="Estilo5"><?php echo $row_usuario['fecha_naci']; ?></span></div></td>
        </tr>
        <tr>
          <td><div align="left" class="Estilo21 Estilo1 Estilo2 Estilo4">
              <div align="left">Telefono:</div>
          </div></td>
          <td><div align="left"><span class="Estilo5"><?php echo $row_usuario['telefono']; ?></span></div></td>
        </tr>
        <tr>
          <td><div align="left" class="Estilo24 Estilo1 Estilo2 Estilo4"><span class="Estilo8">Direccion:</span></div></td>
          <td><div align="left"><span class="Estilo5"><?php echo $row_usuario['direccion']; ?></span></div></td>
        </tr>
      </table>
    <p>&nbsp;</p></td>
  </tr>
  <tr>
    <td><form method="post" name="imagen" enctype="multipart/form-data" action="<?php $_SERVER[PHP_SELF];?>">
      <div align="left">
        <input type="file" name="imgfile">
        <input type="Submit" name="imagen" value="Enviar">
      </div>
    </form>
</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="37">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</html>
<?php
mysql_free_result($usuario);
?>
*****************************************************************
digamos con este codigo se ven la foto q acabo de insertar pero si cierro sesion y vuelvo a abrir no aparece ademas kisiera hacer q salga una imagen general para los q recien se registran y luego recien tengan la opcion de poner su imagen de perfil.

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #5 en: 09 de Septiembre de 2007, 09:26:57 am »
Crea un nuevo campo en la tabla de los usuarios, con nombre imagen (Varchar, 150)
Y cuando hagas esto:

move_uploaded_file 
($file_tmp"$ruta_original/$nombre_nuevaimg");

Añade despues una query a la bd actualizando el campo imagen que acabas de crear, poniendole el nombre de la imagen.
Luego seria tan facil como recojer el nombre de la base de datos y ponerlo en una etiqueta <img>
Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado dunkelheit

  • PHPerit@
  • *
  • Mensajes: 26
  • Karma: 0
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #6 en: 09 de Septiembre de 2007, 22:14:37 pm »
disculpa mi ignorancia ia hize los pasos hasta hacer el campo iamgen pero q es eso de query?

Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #7 en: 09 de Septiembre de 2007, 22:33:20 pm »
Buenas,

No sé si te he entendido bien...

Quieres que al subir una imagen, luego después de subirla salga dicha imagen junto con su enlace?

Saludos :P
Sin Firma me haces una? :P

Desconectado dunkelheit

  • PHPerit@
  • *
  • Mensajes: 26
  • Karma: 0
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #8 en: 10 de Septiembre de 2007, 02:57:22 am »
umhh lo q kiero es  q cada usuario pueda tener la opcion de publicar su imagen de perfil

Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #9 en: 12 de Septiembre de 2007, 00:10:12 am »
Mmm,, mira yo lo que haría sería codificar el nombre a md5, por algún carácter raro del nick... y subiría su foto :)

Saludos :P
Sin Firma me haces una? :P

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 166
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: publicar imagen guardada en el espacio
« Respuesta #10 en: 12 de Septiembre de 2007, 00:56:35 am »
yo haria otra cosa, simplemente llamar a la imagen el numero ID de cada usuario, sin más ni más...
Ejemplo:
id 1; usuario naveda; pass encriptada; email email@email.com;
Y para acceder a la imagen algo tan sencillo como:
<img src="avatares/1.gif">

No necesitas encriptar nada de nada para subir el avatar ;)
Por favor, leete las Normas


Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #11 en: 12 de Septiembre de 2007, 02:46:33 am »
Ya, pero yo lo hago por nick.. pero también como tú dices... Sube la imagen... y tal jeje
Sin Firma me haces una? :P

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 166
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: publicar imagen guardada en el espacio
« Respuesta #12 en: 12 de Septiembre de 2007, 03:11:33 am »
Pero hacerlo por el nick puede acarrear problemas... por ejemplo, si el usuario se pone un nombre como....
usuario.123 podria dar un error de extension de archivo o similar..
../usuario/.. lo mismo...

No sé, me parece mas simple la ID que es unica e inconfundible.
Por favor, leete las Normas


Desconectado dunkelheit

  • PHPerit@
  • *
  • Mensajes: 26
  • Karma: 0
    • Ver Perfil
Re: publicar imagen guardada en el espacio
« Respuesta #13 en: 12 de Septiembre de 2007, 05:56:27 am »
si todo bien pero algo consiso como lo haria diganme aunq sea la guia pero explicado xq recien toy empezando a usar php y hay terminos q no sabo (no se ) jeje gracias

Conectado view

  • PHPero Master
  • ******
  • Mensajes: 23.558
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil