2012-09-06 22 views
20

Estoy usando JQuery file upload demo para mi próximo proyecto con Codeigniter. ¿Puede alguien decirme cómo puedo lograr lo siguiente:Restringir tipos de archivos en JQuery File upload demo

  • La restricción de los tipos de archivos de subida a .zip y .rar
  • La restricción de tamaño de archivo
  • Borrar la lista de archivos subidos (jQuery carga de archivos plugin muestra la lista de los archivos ya cargados)

¡Ayuda apreciada!

+1

Asegúrese de hacer todas estas restricciones/validaciones en el servidor. –

Respuesta

-2

intente buscar en esta línea:

process: [ 
      /* 
       { 
        action: 'load', 
        fileTypes: /^image\/(gif|jpeg|png)$/, 
        maxFileSize: 20000000 // 20MB 
       }, 
       { 
        action: 'resize', 
        maxWidth: 1920, 
        maxHeight: 1200, 
        minWidth: 800, 
        minHeight: 600 
       }, 

en jquery.fileupload-fp.js

3

De acuerdo con la documentación oficial;

$('#file_upload').fileUploadUIX({ 
    maxFileSize: 5000000, // Maximum File Size in Bytes - 5 MB 
    minFileSize: 100000, // Minimum File Size in Bytes - 100 KB 
    acceptFileTypes: /(zip)|(rar)$/i // Allowed File Types 
}); 
4

En jquery.fileupload-ui.js editar esta parte:

$.widget('blueimp.fileupload', $.blueimp.fileupload, { 

    options: { 
     // The maximum allowed file size: 
     maxFileSize: 100000000, 
     // The minimum allowed file size: 
     minFileSize: undefined, 
     // The regular expression for allowed file types, matches 
     // against either file type or file name: 
     acceptFileTypes: /(zip)|(rar)$/i, 
     ---------------------------------------------------------------- 

para borrar la lista de archivos subidos - Retire la llamada $ .getJSON de main.js si no es necesario esa funcionalidad.

62

ahora, sin embargo, quería utilizar el complemento BASIC para el cargador de archivos jquery, es decir, sin ningún otro script ... por alguna razón las opciones maxFileSize/fileTypes no funcionaban, pero eso no es cierto. ¡duda por mi falta de lectura de la documentación!

De todos modos, para mí, fue tan rápida como la siguiente manera:

add: function (e, data) { 
     var goUpload = true; 
     var uploadFile = data.files[0]; 
     if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test(uploadFile.name)) { 
      common.notifyError('You must select an image file only'); 
      goUpload = false; 
     } 
     if (uploadFile.size > 2000000) { // 2mb 
      common.notifyError('Please upload a smaller image, max size is 2 MB'); 
      goUpload = false; 
     } 
     if (goUpload == true) { 
      data.submit(); 
     } 
    }, 

lo tanto, sólo mediante la opción Añadir para permitir únicamente los tipos de imágenes en la expresión regular, y la comprobación (en mi caso) el tamaño del archivo es un máximo de 2 mb.

bastante básico, y de nuevo estoy seguro de las opciones MaxFileSize funcionan, simplemente yo sólo estoy incluyendo el guión básico complemento jquery.fileupload.js

EDITAR Debería haber añadido en mi caso yo estoy cargando solo un archivo (una imagen de perfil) así que de ahí los archivos data.files [0] ... podría iterar a través de la colección de archivos, por supuesto.

+0

¡Finalmente! He estado buscando mucho para un ejemplo que funcionó. Thx :) – william

+0

@william De nada –

+0

¿Cómo funcionaría 'data.submit()' para múltiples archivos? – Hengjie

Cuestiones relacionadas