miércoles, 26 de septiembre de 2012

Cambiar el nombre de una imagen antes de guardarla en la base de datos y comprobar que es imagen en ASPX.NET

Bueno esto no lo veo por ningun lado si lo ven me avisan... y como vez me gusta compartir los códigos... en este caso, esto codigo están en aspx.net C#, dejemos de chachara... vamos al grano valor...

En este caso voy a validar la cédula uruguaya y la foto ante de subirla al servidor nuestro.. (Yo siempre valido todos ah codigo, y despues uso ajax, oh jquery.)


protected void btningresar_Click(object sender, EventArgs e)
    {
       int ocedula = 0;
        string oFotos = "";
        string sExt = "";
        registros pRegis = null;
        string oError = "";
        try
        {
            if (int.Parse(txtcedula.Text) < 1000000 || int.Parse(txtcedula.Text) > 9999999)
            {
                oError += "<li>El número de cédula debe contener 7 dígitos sin puntos ni guión<br/></li>";
                txtcedula.Focus();
                txtcedula.Text = "";
            }
            else
            {
                ocedula = Convert.ToInt32(txtcedula.Text);
            }
        }
        catch
        {
            oError += "<li>Ingrese un número de cédula de 7 dígitos sin puntos ni guión<br/></li>";
            txtcedula.Focus();
            txtcedula.Text = "";


         }
        try
        {

            Random r = new Random();
            int numeros = r.Next(10000000, 99999999);

            oFotos = Path.GetFileName(imgSubida.PostedFile.FileName);
            sExt = Path.GetExtension(oFotos);
            oFotos = oFotos.Substring(oFotos.LastIndexOf(".") + 1).ToLower();
            oFotos = DateTime.Now.ToString("yyyyMMdd_hhmmss") + "_" + numeros + sExt;
            if (imgSubida.HasFile)
            {
                if (!ValidaExtension(sExt))
                {
                    oError += "<li>El archivo no es de tipo imagen: .jpg,.png. <br/></li>";


                }
                else if (imgSubida.FileBytes.Length > 100000)
                {
                    oError += "<li>El limite de imagen tiene que tener un tamaño de 100kb <br/></li>";
                }
                else if (oError != "")
                {
                    oError += "<li>Selecciones una imagen con extensiones: .jpg,.png, Tamaño máximo permitido 100kb <br/></li>";
                }

                else
                {
                    imgSubida.PostedFile.SaveAs(Server.MapPath("~/imagenes") + "\\" + oFotos);
                    //imgFotoChica.ImageUrl = "~/imagenes/" + ofoto;// para mostrar la foto abajo
                    oFotos = "~/imagenes/" + oFotos;
                }
            }
            else
            {
                oError += "<li>Selecciones una imagen con extensiones: .jpg,.png, Tamaño máximo permitido 100kb <br/></li>";
            }

        }
        catch
        {
            oError += "<li>Selecciones una imagenes con las extensiones jpg, png<br/></li>";
        }
        if (oError != "")
        {

            lblError.Text = oError;
        }
        // termino del tray catch y el string de error
        else
        {


            try
            {
                pRegis = new registros(ocedula, oNombre,  oFotos);
                if (LogicaRegistros.Agregar(pRegis))
                {
                    lblError.Text = "<li>Se ingreso correctamente, nuevo funcionario administrativo: <b> <font color='red'> " + pRegis.Nombre + " " + pRegis.Apellido + "</br></font></li>";
                    Limpiar();
                }
                else
                {
                    lblError.Text = "<li>No se puede agregar el funcionario administrativo porque su CI ya existe</li>";
                    txtcedula.Focus();
                    txtcedula.Text = "";

                }
            }
            catch (ApplicationException oAux)
            {
                lblError.Text = oAux.Message;
            }
            catch
            {
                lblError.Text = "<li>problema en la base de dato al agregar funcionario administrativo</li>";
                Limpiar();
            }
        }
    }

private bool ValidaExtension(string sExt)
    {
        Boolean rel = false;
        switch (sExt)
        {
            case ".jpg":
            case ".jpeg":
            case ".png":
             rel = true;
             break;
            default:
            rel = false;
            break;

        }
        return rel;
    }


martes, 18 de septiembre de 2012

¿cambiar nombre de una imagen al subirla via php?

Bueno acá traigo un trozo de código como subir una imagen vía mysql, siempre no encontramos que queremos borrar el nombre de la foto cuando la guardamos en nuestra base de datos.. Y siempre no deja en nombre por defecto..  pero en este caso solo no interesar son la extension..(ejemplo: 20120918133841_9e8c969ffc0abf.jpg) Yo acostumbro siempre pasar la fecha, la hora, los minutos y segundo cuando subo una foto..  Bueno vamos de dejarlo de chachara vamos al grano..

 copiar y pegar y despues probar 



1-)Clase index...

<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario foto</title>
</head>

<body>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>" method="post" enctype="multipart/form-data" id="frm_registros">
  <div id="respond">
    <h1>Regístrate Es gratis (y lo seguirá siendo). </h1>
    <div>
      <label class="campo">Selecciones un imagen:</label>
      <input type="file"  name="imagen" />
      <!--<input name="action" type="hidden" value="upload" />--> 
    </div>
    <div>
      <input name="btnenviar" type="submit" id="btnenviar" value="Registrarse" />
    </div>
    <br/>
    <?php
  include("includes/registro_in_usuarios.php");
  if ($error) {
  echo '<ul>';
  foreach ($error as $alerta) {
    echo "<li class='avertencia'>$alerta</li>\n";
}
  echo '</ul>'; }
?>
  </div>
</form>
</body>
</html>

2-)script de la base de datos tbusuarios

3-)Clase registro_in_usuarios.php...(va ubicada en la carpeta includes)

<?php 
session_start();
date_default_timezone_set('America/Montevideo');
$error = array();
if(array_key_exists('btnenviar', $_POST)){

//obtenemos los datos del archivo y imagen


$nameimagen= $_FILES['imagen']['name'];
$imagen = (explode(".",$nameimagen));
$extimagen= pathinfo($nameimagen);
$ext= array("","png","jpg");
$prefijo = substr(md5(uniqid(rand())),0,10).".".(isset($imagen[1])?$imagen[1]:'');
$fecha =  date("Ymd_His",time());



//guardando imagen jpg y png
if(!is_uploaded_file($_FILES['imagen']['tmp_name'])){//guardando imagen jpg y png $error['$nameimagen']="Selecciones una imagen con extensiones: .jpg,.png, máximo permitido 100kb"; } else if(!(array_search($extimagen['extension'],$ext))){ $error['$extimagen']= "Solo es permitido imagenes con las extensiones jpg, png"; }else if($_FILES["imagen"]['size'] > 100000){ $error['imagen']= "El limite de imagen tiene que tener un tamaño de 100kb"; }else if (!$error) { // guardamos la imagen el la carpeta imagen $urlimagen= "imagenes/".$fecha."_".$prefijo; copy($_FILES['imagen']['tmp_name'],$urlimagen); }
 

if(!$error)
{
try
{

$insertar= "INSERT INTO tbusuarios (imagen) VALUES ('$urlimagen'')"; 
                  
                  $resul = mysql_query($insertar,$conexion);                    
                   header("location:index.php");
    mysqli_close($conexion);


//var_dump($_POST);
   
}catch(Exeception $ex)
{
echo "Problema en la base de datos al ingresar  " .$ex->getMessage();
}


}

}
$_POST= array();
?>