Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/02/2005, 23:46
Avatar de Reynier
Reynier
 
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Directorio e Imágenes

Pues bien un amigo mío me ha pedido que le desarrolle un script que le permita subir imagenes a un directorio y cuando estas sean subidas entonces crear un thumbnail de la misma imagen que se subio, ponerlo en la carpeta thumb y luego mostrar el thumbnail. He programado algo como esto:
Código PHP:
<?php
 $dir           
"fotos/";
 
$thum          "thubmnails/";
 
$allowext = array("image/jpeg","image/pjpeg");
 
$accion        = isset($_GET['ac'])?$_GET['ac']:null;
 
$filename      = isset($_FILES['foto']['name'])?$_FILES['foto']['name']:null;
 
$tmp_name      = isset($_FILES['foto']['tmp_name'])?$_FILES['foto']['tmp_name']:null;
 
$filetype      = isset($_FILES['foto']['type'])?$_FILES['foto']['type']:null;
 if(
$accion && $accion == "upload"){
  if(
file_exists($dir.$filename)){
   
$error "Archivo existente";
  }else{
   if(
in_array($filetype,$allowext)){
    
chmod($dir,0777); // Esto es para Windows que es con lo que yo trabajo
    
$file move_uploaded_file($tmp_name,$dir.$filename);
    if(
$file){
     
$error "Foto subida correctamente";
     
$foto $dir.$filename;
     
$tamanio getimagesize($foto);
     
$ancho $tamanio[0];
     
$alto $tamanio[1];
     
$src imagecreatefromjpeg($foto);
     
$thumb imagecreatetruecolor(221,167);
     
imagecopyresized($thumb,$src,0,0,0,0,221,167,$ancho,$alto);
     if(!
is_dir($dir.$thum)){
      
$newdir "fotos/thumbnails/";
      
$mk mkdir($newdir,0777);
      if(!
$mk)
       
$error "No se pudo crear el directorio ".$dir.$thumb."";
     }
     
imagejpeg($thumb,$newdir.$filename,60);
     
header('Content/type: image/pjpeg');
    }else{
     
$error "Ocurrieron errores mientras se intentaba subir el fichero";
    }
   }else{
    
$error "Extension no permitida";
   }
  }
 }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Administrador - Galeria de Fotos on-line - Morgan DesignStudio</title>
<style type="text/css">
a {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: normal;
    color: #666666;
    text-decoration: none;
}
a:hover {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: normal;
    color: #000000;
    text-decoration: none;
}
input {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;
    color: #999999;
}
</style>
<script language="JavaScript">
 function CheckForm(){
  var file = document.form1.foto.value;
  if(file){
   form1.submit();
  }else{
   alert("Debes especificar un fichero a subir");
   document.form1.foto.focus();
  }
 }
</script>
</head>
<body>
<form action="upload.php?ac=upload" method="post" enctype="multipart/form-data" name="form1">
<strong><font color="#FF0000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Estado:</font></strong>
<?
 $error 
= isset($error)?$error:"";
echo 
"<strong><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">$error</font></strong>";
?>
<br>
<div align="left">
  <p><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Elija el archivo:*<br>
    </font>
      <input name="foto" type="file" size="40">
      <br>
      <br>
      <img src="upload.gif" alt="Subir archivo" onClick="javascript:CheckForm();">
</p>
  <p><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">*</font></strong><font color="#FF0000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Advertencia</strong></font><font size="1" face="Verdana, Arial, Helvetica, sans-serif">: El sistema se basa en una galer&iacute;a de fotos por lo que se recomienda subir archivos con extensi&oacute;n &quot;<strong><font color="#FF0000">.jpg</font></strong>&quot; para su optima visualizaci&oacute;n </font><font size="1">.</font></p>
</div>
</form>
<a href="main.htm" target="iframe"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Volver al Panel de Control</font></a>
</body>
</html>
Cuando hago el primer upload me pone este mensaje:
Cita:
Estado: Foto subida correctamente
ahora cuando hago el 2do upload me pone este mensaje:
Cita:
Warning: mkdir() [function.mkdir]: File exists in d:\Inetpub\wwwroot\morgan\upload.php on line 27

Warning: Cannot modify header information - headers already sent by (output started at d:\Inetpub\wwwroot\morgan\upload.php:27) in d:\Inetpub\wwwroot\morgan\upload.php on line 32

Estado: No se pudo crear el directorio fotos/Resource id #6

PHP Warning: mkdir() [function.mkdir]: File exists in d:\Inetpub\wwwroot\morgan\upload.php on line 27 PHP Warning: Cannot modify header information - headers already sent by (output started at d:\Inetpub\wwwroot\morgan\upload.php:27) in d:\Inetpub\wwwroot\morgan\upload.php on line 32
la cosa es que no se que pasa porque en teoría me debía funcionar correctamente. Que hago mal ??

Salu2
__________________
Ing. Reynier Pérez Mira