Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/04/2008, 04:37
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 5 meses
Puntos: 5
Re: ¿Se puede cambiar el tmp_name?

He probado por curiosidad a ver si se podía trabajar directamente con el archivo que se sube por defecto a la carpeta temporal utilizándolo como argumento en la función imagecreatefromjpeg, y no me ha dado ningún problema.

Luego después de redimensionar partiendo del archivo que esta en la carpeta temporal he utilizado la función imagejpeg pasando como segundo parámetro(guardar en archivo) el nombre original del archivo subido y me lo guarda redimensionado en la carpeta dónde esté el script(siempre que tenga permiso de escritura).

Es que claro pensándolo bien, si no vas a usar para nada la imagen que se sube, por qué copiarla para acabar trabajando con esa copia que luego encima redimensionas.

Estoy de acuerdo en que si se puede redimensionar el archivo temporal te evitas un paso tonto.

Código PHP:
<?
if(!$_POST['Enviar'])
{
?>
<form action="numeros.php" method="post" enctype="multipart/form-data">
<input type="file" name="foto" id="foto">
<input type="submit" name="Enviar" value="enviar">
</form>
<?}
else
{
// Variables que indican el archivo de la imagen y el nuevo tamano
$name=$_FILES['foto']['name'];
$filename $_FILES['foto']['tmp_name'];
$percent 0.5;

// Content-type para el navegador

// Se obtienen las nuevas dimensiones
list($width$height) = getimagesize($filename);
$newwidth $width $percent;
$newheight $height $percent;

// Cargar la imagen
$thumb imagecreatetruecolor($newwidth$newheight);
$source imagecreatefromjpeg($filename);

// Redimensionar
imagecopyresized($thumb$source0000$newwidth$newheight$width$height);

// Mostrar la nueva imagen
imagejpeg($thumb,$name,100);

}
Es sólo una prueba para ver si se podía hacer, no chequeo tipo de archivo subido ni ni tamaño ni extensiones...

Pero claro el motivo de ahorrar el paso de copiar la imagen subida, sólo tiene sentido si no vas a usar la original, si tu intención es digamos crear un thumbnail que redireccione a la imagen grande, si que necesitarías la imagen subida con lo cual si que habría que usar move_uploaded_file()


Un saludo
__________________
[+]
[+]

Última edición por yoseman; 07/04/2008 a las 08:30