Foros del Web » Programando para Internet » PHP »

Tengo el Upload, falta que solo se restringa a imagenes...

Estas en el tema de Tengo el Upload, falta que solo se restringa a imagenes... en el foro de PHP en Foros del Web. Pues eso... Tengo el codigo para subir archivos y todo... Pero el problema es que me acepta todo los archivos, quiero que solo me acepte ...
  #1 (permalink)  
Antiguo 05/07/2008, 17:59
 
Fecha de Ingreso: julio-2007
Ubicación: Por ahi...
Mensajes: 84
Antigüedad: 16 años, 9 meses
Puntos: 0
Tengo el Upload, falta que solo se restringa a imagenes...

Pues eso...

Tengo el codigo para subir archivos y todo...

Pero el problema es que me acepta todo los archivos, quiero que solo me acepte imagenes...

Alguien tiene idea de como hacerlo ?

No sé dodne poner el codigo para que solo me permita imagenes =/

Aqui esta el codigo :D

Código PHP:
<?php 
$destino 
'subidas' ;
         if (isset (
$_FILES["archivos"])) {
         echo  (
"<div id=\"reciente\"><div style=\"float:right; margin-right:-10px; margin-top:-25px;\"><a href=\"javascript:void(0);\" onClick=\"muestra('reciente')\"><img src=\"img/cerrar.png\" alt=\"X\" /></a></div>");
         
$tot count($_FILES["archivos"]["name"]);
         for (
$i 0$i $tot$i++){
             
move_uploaded_file $_FILES ["archivos"]["tmp_name"][$i], $destino '/' $_FILES ["archivos"]["name"][$i]);
             
$path$destino '/'.$HTTP_POST_FILES['archivos']['name'][$i];
               
$name $_FILES["archivos"]["name"][$i];
            
$ext strtolower(strrchr($name,"."));
              
$kb 1024;         // Kilobyte
               
$mb 1024 $kb;   // Megabyte
              
$gb 1024 $mb;   // Gigabyte
               
$tb 1024 $gb;   // Terabyte
            
$size $HTTP_POST_FILES['archivos']['size'][$i];
               if(
$size $kb) {
              
$e $size." B";
               }
               else if(
$size $mb) {
              
$e round($size/$kb,2)." KB";
               }
               else if(
$size $gb) {
              
$e round($size/$mb,2)." MB";
              }
               else if(
$size $tb) {
               
$e round($size/$gb,2)." GB";
               }
               else {
              
$e round($size/$tb,2)." TB";
               }
            echo(
"<b>Archivo  Nº ");
            echo(
$i+1);
            echo(
":</b> ");
            if (
$ext == ".gif" or $ext == ".png" or $ext == ".jpg" or $ext == ".bmp"  or $ext == ".jpeg")  { echo "<li class=\"recientes\">&nbsp; &nbsp;<img src=\"$path\" width=\"35\" height=\"35\" border=\"0\" align=\"absmiddle\">"; }
elseif (
$ext == ".css" or $ext == ".js" or $ext == ".xml" or $ext == ".php" or $ext == ".htm"  or $ext == ".html") { echo "<li class=\"recientes\"><img src=\"img/web.png\" width=\"32\" height=\"32\" border=\"0\" align=\"absmiddle\">";}
            elseif (
$ext == ".doc" or $ext == ".rtf" or $ext == ".xls" or $ext == ".mdb" or $ext == ".pdf" or $ext == ".txt") { echo "<li class=\"recientes\"><img src=\"img/texto.png\" width=\"32\" height=\"32\" border=\"0\" align=\"absmiddle\">";}
            elseif (
$ext == ".zip" or $ext == ".rar" or $ext == ".gz" or $ext == ".dmg" or $ext == ".iso") { echo "<li class=\"recientes\"><img src=\"img/comprimido.png\" width=\"32\" height=\"32\" border=\"0\" align=\"absmiddle\">";}
            elseif (
$ext == ".mp3" or $ext == ".wav" or $ext == ".kar" or $ext == ".ogg" or $ext == ".wma" or $ext == ".ogm" or $ext == ".midi" or $ext == ".mid") { echo "<li class=\"recientes\"><img src=\"img/musica.png\" width=\"32\" height=\"32\" border=\"0\" align=\"absmiddle\">";}
            elseif (
$ext == ".psd" or $ext == ".ai" or $ext == ".eps" or $ext == ".tiff" or $ext == ".FH11") { echo "<li class=\"recientes\"><img src=\"img/imagen.png\" width=\"32\" height=\"32\" border=\"0\" align=\"absmiddle\">";}
            elseif (
$ext == ".mov" or $ext == ".mpeg" or $ext == ".avi" or $ext == ".mpg" or $ext == ".wmv") { echo "<li class=\"recientes\"><img src=\"img/video.png\" width=\"32\" height=\"32\" border=\"0\" align=\"absmiddle\">";}            
            elseif (
$ext == "" )  { echo "<li class=\"recientes\"><span class=\"error\">Error!!!</span>"; }
            else  { echo 
"<li class=\"recientes\"><img src=\"img/desconocido.png\" width=\"32\" height=\"32\" border=\"0\" align=\"absmiddle\">";}
            echo 
"&nbsp;&nbsp;<a href=\"$path\">";
            echo(
$name);
            echo(
"</a>");
            echo 
"&nbsp;(".$e." )";
               echo(
"<br />");
            if(
$e != 0) {
        echo 
"<img src=\"img/bien.gif\" width=\"20\" height=\"20\" border=\"0\" align=\"absmiddle\"> Archivo subido con exito </li><br />";
    } else {
        echo 
"<img src=\"img/mal.gif\" width=\"20\" height=\"20\" border=\"0\" align=\"absmiddle\"> Error al subir el archivo </li><br />";    
    }   
    }
    echo (
"</div>");
      }  
?>
 <form name="formu" id="formu" action="" method="post" enctype="multipart/form-data">
     <dl>            
   <dt><label>Archivos a Subir:</label></dt>
   <dd>
     <div id="adjuntos">
   <input type="file" name="archivos[]" />
   <a href="#" onclick="addCampo()">Subir otro archivo</a></div>
   </dd>
   <dt></dt>      
   <dd>
      <BR /> <input type="submit" value="Subir Archivo(s)" id="envia" name="envia" />
   </dd>
     </dl>
</form>
<br />
Saludos y ojala me puedan ayudar.
  #2 (permalink)  
Antiguo 05/07/2008, 18:15
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Tengo el Upload, falta que solo se restringa a imagenes...

Hola

busca informacion sobre como usar

$HTTP_POST_FILES['archivos']['type'];

aunque te aconsejp solo usar

$_FILES['archivos']['size'];

y con IF´s haces que solo acepte ficheros jpg gif o png

Un saludo
  #3 (permalink)  
Antiguo 05/07/2008, 18:31
 
Fecha de Ingreso: julio-2007
Ubicación: Por ahi...
Mensajes: 84
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Tengo el Upload, falta que solo se restringa a imagenes...

Cita:
Iniciado por jaronu Ver Mensaje
Hola

busca informacion sobre como usar

$HTTP_POST_FILES['archivos']['type'];

aunque te aconsejp solo usar

$_FILES['archivos']['size'];

y con IF´s haces que solo acepte ficheros jpg gif o png

Un saludo


Es que tengo que restringir unos ciertos tipos de archivos o si no quedaria la tendalada =/

Pero el problema es que busque informacion sobre type y todo, pero no sé como integrarlo al script, ese es mi problema para ser franco =/

Encontre una pagina con todos los mimes, pero no lo peudo integrar =/

Gracias de todos modos =)!

Saludos!
  #4 (permalink)  
Antiguo 06/07/2008, 00:20
 
Fecha de Ingreso: enero-2008
Ubicación: La Plata
Mensajes: 136
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Tengo el Upload, falta que solo se restringa a imagenes...

Debes poner un if de la siguiente forma:

Código PHP:
if(substr($_FILES['archivo']['type'],0,5) == 'image'){
  
//Se sube la imagen
}else{
  
//Devuelve error ya que se trata de una imagen

Espero que te sirva , Suerte!
  #5 (permalink)  
Antiguo 06/07/2008, 09:30
 
Fecha de Ingreso: julio-2007
Ubicación: Por ahi...
Mensajes: 84
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Tengo el Upload, falta que solo se restringa a imagenes...

Cita:
Iniciado por manchilp Ver Mensaje
Debes poner un if de la siguiente forma:

Código PHP:
if(substr($_FILES['archivo']['type'],0,5) == 'image'){
  
//Se sube la imagen
}else{
  
//Devuelve error ya que se trata de una imagen

Espero que te sirva , Suerte!


Jejejejejeje, gracias =)!

Ya eh puesto varios de esos codigos y variables y varios codigos mas, que deberian de funcionar, pero no sé si los estoy poniendo en un lugar in adecuado o que =/

Pero ninguno me ah funcionado correctamente =B

Gracias nuevamente y saludos!
  #6 (permalink)  
Antiguo 07/07/2008, 18:58
 
Fecha de Ingreso: julio-2007
Ubicación: Por ahi...
Mensajes: 84
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Tengo el Upload, falta que solo se restringa a imagenes...

Chicos, puede cerrar este post =)!

Ya pude hacerlo, gracias y saludos!
  #7 (permalink)  
Antiguo 07/07/2008, 19:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Tengo el Upload, falta que solo se restringa a imagenes...

Hola Chicoblog,

Si encuentras el resultado es importante que lo expongas, así si otro usuario llega a tener la misma duda lo pueda hacer.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:15.