Me gustaría que jQuery limite un campo de carga de archivos a solo jpg / jpeg, png y gif. Ya estoy haciendo una comprobación de backend PHP
. Ya estoy ejecutando mi botón de envío a través de una JavaScript
función, así que realmente solo necesito saber cómo verificar los tipos de archivo antes de enviar o alertar.
javascript
jquery
file-upload
file-type
Antonio
fuente
fuente
$("#my_upload_form").bind("submit", function() { // above check });
$('#file_field').change(function(){// above check});
$("#my_upload_form").bind("submit", function() { // above check });
ahora debe vincularse usando$("#my_upload_form").submit(function() { // above check });
api.jquery.com/submit . también puede evitar que se envíe el formulario usando$("#my_upload_form").submit(function(e) { // above check e.preventDefault(); });
".jpg"
por ejemplo, un archivo de MS Word, FileUpload aceptaría este archivo como imagen. Creo que no está bien.No es necesario un complemento solo para esta tarea. Cobbleed esto de un par de otros scripts:
El truco aquí es configurar el botón de carga en deshabilitado a menos que se seleccione un tipo de archivo válido.
fuente
Puede usar el complemento de validación para jQuery: http://docs.jquery.com/Plugins/Validation
Resulta que tiene una regla accept () que hace exactamente lo que necesita: http://docs.jquery.com/Plugins/Validation/Methods/accept#extension
Tenga en cuenta que controlar la extensión del archivo no es a prueba de balas, ya que no está relacionado de ninguna manera con el tipo MIME del archivo. Entonces podría tener un .png que es un documento de Word y un .doc que es una imagen png perfectamente válida. Así que no olvide hacer más controles del lado del servidor;)
fuente
Para el front-end, es bastante conveniente poner el atributo ' accept ' si está utilizando un campo de archivo.
Ejemplo:
Un par de notas importantes:
fuente
¿No quieres comprobar más en MIME que en cualquier medida en que mienta el usuario? Si es así, es menos de una línea:
fuente
para mi caso usé los siguientes códigos:
fuente
Intento escribir un ejemplo de código de trabajo, lo pruebo y todo funciona.
Liebre es código:
HTML:
Javascript:
fuente
Este código funciona bien, pero el único problema es que si el formato del archivo es diferente a las opciones especificadas, muestra un mensaje de alerta pero muestra el nombre del archivo mientras debería descuidarlo.
fuente
Este ejemplo permite cargar solo imágenes PNG.
HTML
JS
fuente
fuente
Si está tratando con múltiples cargas de archivos (html 5), tomé el comentario sugerido y lo modifiqué un poco:
fuente
fuente
fuente
Aquí hay un código simple para la validación de JavaScript, y después de que valide, limpiará el archivo de entrada.
fuente