ruta - subir archivos con php y jquery
Restricción de tipos de archivos en demostración de carga de archivos JQuery (5)
Estoy utilizando la demo de carga de archivos de JQuery para mi próximo proyecto con Codeigniter. ¿Alguien puede decirme cómo logro lo siguiente?
- Restringir los tipos de archivos cargados a .zip y .rar
- Restricción del tamaño del archivo
- Borrar la lista de archivos subidos (el complemento de carga de archivos JQuery muestra la lista de archivos ya cargados)
¡Ayuda apreciada!
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
});
En jquery.fileupload-ui.js, edite 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 cargados: elimine la llamada $ .getJSON de main.js si no necesita esa funcionalidad.
Otra forma de hacerlo es la siguiente.
$(''#upload'').fileupload({
change: function (e, data) {
if (!(//.(jpg|jpeg|png|pdf)$/i).test(data.files[0].name)) {
alert(''Not Allowed'');
return false;
}
}
});
es probable que tenga muchas soluciones ahora, sin embargo, quería usar 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, sin embargo, eso no es ninguna duda para mi falta de leer la documentación!
De todos modos, fue tan rápido como hacer lo siguiente:
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();
}
},
Entonces, solo use la opción AGREGAR para permitir solo los tipos de imágenes en la expresión regular, y verificar (en mi caso) el tamaño del archivo es un máximo de 2 mb.
Bastante básico, y de nuevo estoy seguro de que las opciones de maxFileSize funcionan, solo estoy incluyendo el script de complemento básico jquery.fileupload.js
EDITAR Debería haber agregado en mi caso que estoy cargando solo un archivo (una imagen de perfil) por lo tanto, los archivos data.files [0] ... podría iterar a través de la colección de archivos, por supuesto.
intenta mirar 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