Que hace:
- Sube el archivo
- Valida si es jpg o jpeg
- Si es indicado en los parametros redimensiona la imagen en 2 tamaños
Al final entregaria 3 imagenes: la original, redimensionada 1, redimensionada 2 y retorna el nombre generado para la imagen.
Para poder utilizarla o llamar la imagen seria:
ej:
Supongamos que el nombre generado es "14521458.jpg"
original: 14521458.jpg
redim 1: res14521458.jpg
redim 2: th14521458.jpg
Espero que haya sido claro...
Códigos:
PHP
'<''?'php
/* Subir Foto imagen */
/* Sube una imagen desde el pc al servidor, le cambia la resolucion para la pagina y crea la thumbnail.
El directorio de subida debe estar dentro del raiz
$inpt : nombre del campo de archivo en el form.
$dir : directoruio a subir (debe existir y debe ir asi: dir/)
$aj 0-1 : Indica si haremos resolucion
$ajx : ancho de resolucion
$th 0-1 : Indica si haremos thumnail
$thx : ancho
$thy : alto */
function subir_foto($inpt,$dir,$aj,$ajx,$th,$thx,$thy){
$uploadDir =$DOCUMENT_ROOT.$dir;
$uploadFile = $uploadDir.$_FILES[$inpt]['name'];
if (move_uploaded_file($_FILES[$inpt]['tmp_name'], $uploadFile)){
$secargo=1;
}else{
$secargo=0;
}
chdir($DOCUMENT_ROOT.$dir);
if((strpos($_FILES[$inpt]['name'],"jpg") strpos($_FILES[$inpt]['name'],"jpeg")) (strpos($_FILES[$inpt]['name'],"JPG") strpos($_FILES[$inpt]['name'],"JPEG"))){
$nnew=date("d"."m"."y"."h"."i"."s").".jpg";
rename($_FILES[$inpt]['name'],$nnew);
$img=imagecreatefromjpeg($nnew);
$alto=imagesy($img);$ancho=imagesx($img);
/* Crear imagen ajustada */
if($aj==1){
$anchores=$ancho/$ajx;
$altores=$alto/$anchores;
$res=imagecreatetruecolor($ajx,$altores);
imagecopyresampled($res,$img,0,0,0,0,$ajx,$altores,$ancho,$alto);
imagejpeg($res,"res".$nnew);
}/* Crear imagen ajustada FIN */
/* Crear imagen chica */
if($th==1){
$thumb=imagecreatetruecolor($thx,$thy);
imagecopyresampled($thumb,$img,0,0,0,0,$thx,$thy,$ancho,$alto);
imagejpeg($thumb,"th".$nnew);
}/* Crear imagen chica FIN */
return $nnew;
}
else{
unlink($_FILES[$inpt]['name']);
}
}
'?>'
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<?
if(strlen($_FILES['flog_f']['name'])){
//agregar foto
$flog_foto=subir_foto("flog_f","uploads/",1,450,1,80,70);
}?
>
<form action="[php]<?= $PHP_SELF?>[/php]" method="post" enctype="multipart/form-data" name="flog_form" id="flog_form">
Foto <strong>SOLO JPEG ó JPG</strong> :<input name="flog_f" type="file" id="flog_f" />
<input name="submit" type="submit" id="submit" value="Enviar" />
</form>
</body>
</html>
Descargar Archivos
9 comments:
PARA HTML
mna como lo pongo para ke la envie alagun -email o alguan carpeta..de su server u housting
: www.grafiteroschile.cl/flayer
ke cambios tengo que hacer
Si sabes enviar correos del tipo html, solo debes poner la "url completa" de la imagen.
Ejemplo:
'<'img src="http://www.tuweb.cl/update/img.jpg "/'>'
pero en ke parte del codigo
HTML
lo midifico no cacho mucho :s
esta esla web
www.grafiteroschile.cl
y el korreo seria
graffitis@grafiteroschile.cl
o esta srei al carpeta donde se irian
www.grafiteroschile.cl/public/flayer
De todos los códigos que he buscado sobre redimensionar una imagen de un form input y guardarla donde quería (ya redimensionada), este es el mejor código de todos. Te felicido sinceramente. Gracias
Muchas gracias! muy bueno.
Lo q si es q se cuelga con imagenes de 2304 x 1708 mas o menos, no sabes d un codigo q pueda redimensionar esatas imagens tan grandes.
desde ya gracias!.
Prueba aumentando el uso de memoria en php.ini
Me podrias orientar como puedo hacer para subir de a 4 imagenes el código esta muy bueno..
la verdad parece interesante el codigo... pero la verdad no tengo ni idea como hacer q funcione en mi blog. Alguien puede explicar, soy muy novato con PHP. Kisiera saber donde y como pongo cada uno de los DOS codigos. Y si tengo que hacerle alguna modificacion especifica. cual es el proceso... gracias, perdon por la ignorancia.
Sólo debes incluir el archivo y llamar a la funcion:
include("sube.php");
//agregar foto
$flog_foto=subir_foto("flog_f","uploads/",1,450,1,80,70);
Fíjate en el archivo form.
Aunque sería más conveniente que supieras que motor de blog usas, por ejemplo si es wordpress, hay una infinidad de plugins para imágenes.
Lo otro te recomiendo que estudies más php porque el codigo es muy simple de usar (si saber programar en php).
Post a Comment