Foros del Web » Programando para Internet » Javascript »

Cómo puedo validar el tipo de archivo a subir en este codigo?

Estas en el tema de Cómo puedo validar el tipo de archivo a subir en este codigo? en el foro de Javascript en Foros del Web. Hola a todos! Tengo un formulario con sus correspondientes archivos en php que me permiten subir archivos al servidor pero mi duda está en este ...
  #1 (permalink)  
Antiguo 14/10/2010, 08:55
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Cómo puedo validar el tipo de archivo a subir en este codigo?

Hola a todos! Tengo un formulario con sus correspondientes archivos en php que me permiten subir archivos al servidor pero mi duda está en este código y su formulario:

form_upload.php
Código:
<script language="javascript" type="text/javascript">
<!--
function startUpload(){
      document.getElementById('f1_upload_process').style.visibility = 'visible';
      document.getElementById('f1_upload_form').style.visibility = 'hidden';
      return true;
}

function stopUpload(success){
      var result = '';
      if (success == 1){
         result = '<span class="msg">La imagen ha subido correctamente!<\/span><br/><br/>';
         parent.frames['listado'].window.location.reload();
      }
      else {
         result = '<span class="emsg">No ha seleccionado ninguna imagen para subir!<\/span><br/><br/>';
      }
      document.getElementById('f1_upload_process').style.visibility = 'hidden';
      document.getElementById('f1_upload_form').innerHTML = result + '<label>File: <input name="archivo" type="file" size="30" /><\/label><label><input type="submit" name="submitBtn" class="sbtn" value="Upload" /><\/label>';
      document.getElementById('f1_upload_form').style.visibility = 'visible';      
      return true;   
}

//-->
</script>

<form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();" >
  <p id="f1_upload_process">Loading...<br/>
      <img src="loader.gif" /><br/>
  </p>
  <p id="f1_upload_form" align="center"><br/>
      <label>File:
        <input name="archivo" type="file" size="30" />
      </label>
      <label>
      <input type="submit" name="submitBtn" class="sbtn" value="Upload" />
      </label>
  </p>
  <iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>
El tema es que este formulario sube TODO al servidor y lo que quisiera saber es cómo hacer para que solo acepte archivos jpg, gif ó png.
¿Esto se valida en el formulario antes de subir la imagen?

Muchas gracias.
Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #2 (permalink)  
Antiguo 14/10/2010, 11:51
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cómo puedo validar el tipo de archivo a subir en este codigo?

Me olvidaba... qué conviene hacer?
- Validad la extensión del archivo en el formulario antes de hacer el upload ó en el archivo upload hacer la validación para saber si es una imagen o no?
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #3 (permalink)  
Antiguo 14/10/2010, 12:29
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cómo puedo validar el tipo de archivo a subir en este codigo?

¿No se puede agregar alguna línea de código para que detecte si es el archivo es una imagen?
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #4 (permalink)  
Antiguo 14/10/2010, 13:13
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Cómo puedo validar el tipo de archivo a subir en este codigo?

podrías comprobar la extensión recogiendo el nombre del archivo (string length) y utilizando substr() para recoger los 3 últimos dígitos para poder comprobarlos. según la extensión que recoja, si es igual o diferente a la que tú quieres, que haga una cosa u otra.

y de todas formas, si la única validación que tienes que hacer es esa, yo casi hasta te recomiendo utilizar php tanto para validar como para enviar los datos al servidor.

un saludo.
  #5 (permalink)  
Antiguo 14/10/2010, 13:24
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cómo puedo validar el tipo de archivo a subir en este codigo?

El archivo upload.php es este:
Código PHP:
//conex a la base....
......
//variable imagen
$archivo = $_FILES['archivo']['name']; //name puede ser tmp_name
$result = 0;

//sentencia Sql
if(@move_uploaded_file($_FILES['archivo']['tmp_name'], "images/".$archivo."")) {
  $sql = "INSERT INTO imagenes (imagen) VALUES ('".$archivo."')";
  $res = mysql_query($sql);
  $result = 1;
}

sleep(1);

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result?>);</script>
Pero no sé donde hay que hacer la detección del archivo que se ingresa para que detecte si es imagen o no.

Alguna sugerencia?
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #6 (permalink)  
Antiguo 14/10/2010, 13:31
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cómo puedo validar el tipo de archivo a subir en este codigo?

Cita:
Iniciado por uikekarallo Ver Mensaje
podrías comprobar la extensión recogiendo el nombre del archivo (string length) y utilizando substr() para recoger los 3 últimos dígitos para poder comprobarlos. según la extensión que recoja, si es igual o diferente a la que tú quieres, que haga una cosa u otra.

y de todas formas, si la única validación que tienes que hacer es esa, yo casi hasta te recomiendo utilizar php tanto para validar como para enviar los datos al servidor.

un saludo.
Probé lo que me has comentado pero por alguna razón, cuando utilizo substr() para que me detecte si es imagen o no, el loading... se queda tildado. El tema es que al modificar el upload.php, el script que está junto con el formulario no carga la imagen, no hace nada.
Por eso mi duda donde hacer la modificación... si en el script o en el upload de php.

Eso más que nada lo acomodé para cargar imágenes y que me aparezca el loading y luego de cargar la imagen, debajo se refrescara un iframe donde me muestra el listado completo de las imágenes que voy subiendo, con la opcion de borrarlas o no.

Qué lío que armé. Gracias.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #7 (permalink)  
Antiguo 14/10/2010, 13:49
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Cómo puedo validar el tipo de archivo a subir en este codigo?

Cita:
Pero no sé donde hay que hacer la detección del archivo que se ingresa para que detecte si es imagen o no.
al recoger los datos por php...

Código PHP:
//variable imagen
$archivo $_FILES['archivo']['name']; //name puede ser tmp_name
--- > $tipo_archivo $_FILES['archivo']['type']; 
$result 0;

//sentencia Sql
--- > if ($tipo_archivo != 'jpg' || $tipo_archivo != 'jpeg')
        {
          die(
'error')
        }

if(@
move_uploaded_file($_FILES['archivo']['tmp_name'], "images/".$archivo."")) {
  
$sql "INSERT INTO imagenes (imagen) VALUES ('".$archivo."')";
  
$res mysql_query($sql);
  
$result 1

a ver así...
  #8 (permalink)  
Antiguo 14/10/2010, 14:13
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Cómo puedo validar el tipo de archivo a subir en este codigo?

uikekarallo: gracias por tu tiempo.

Probé hacerlo así y no hace nada... ni error tira. De alguna manera el script donde está el formulario, al presionar sobre el boton de UPLOAD hace que solo muestre el LOADING sin hacer otra cosa.... se queda como tildado pero nop... no aparece ningún error.

No sé... por lo que veo el tema está en el script y no le encuentro la vuelta carancho :(

Gracias otra vez amigo.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #9 (permalink)  
Antiguo 14/10/2010, 16:54
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Cómo puedo validar el tipo de archivo a subir en este codigo?

Hola:

Revisa este artículo: Revisar las imágenes antes de subirlas

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: subir, tipo
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 21:06.