Este es mi codigo
Código HTML:
Ver original<ul id="lista-archivos"></ul> <input type="file" name="file_upload[]" id="file_upload" multiple />
Código Javascript
:
Ver originalvar input = document.getElementById('file_upload'), formdata = false,
btn = document.getElementById('btn_guarda'),envia = false, btnCancela = document.getElementById('btnCancela');
function mostrarImagenSubida(evt){
var archivos = evt.target.files;
var salida = "";
for (var i = 0, f; f = archivos[i]; i++) {
salida +='<li data-elem="'+i+'"><label>nombre:</label><p>'+decodeURI(f.name)+'</p>';
salida +='<a href="javascript:void(0);" onclick="abortRead('+i+')"><img src="<?php echo $rutaPublica.'imagenes/uploadify-cancel.png'?>"/></a>';
salida +='</li>';
}
document.getElementById('lista-archivos').innerHTML = salida;
}
function abortRead(idElmento) {
var salida = "";
var len = input.files.length;
for(var i = 0 ; i < len; i++){
if(idElmento == i){
$('#lista-archivos li:eq('+i+')').remove();
var file = input.files[i];
file.remove(file.idElmento);
}
}
}
input.addEventListener('change', mostrarImagenSubida, false);
//Revisamos si el navegador soporta el objeto FormData
if(window.FormData){
formdata = new FormData();
//document.getElementById('btnSubmit').style.display = 'none';
}
//Aplicamos la subida de imágenes al evento change del input file
btn.addEventListener("click", function (evt) {
var variables = "tipo = "+ $("#tipo").val()+"&tipoNombre="+$("#tipo option:selected").html()+"&cadena="+getSelections()+"¬a="+decodeURIComponent(textTinymce());
//input.addEventListener('change', function(evt){
var i = 0, len = input.files.length, img, reader, file;
document.getElementById('response').innerHTML = 'Subiendo...';
//Si hay varias imágenes, las obtenemos una a una
for( ; i < len; i++){
file = input.files[i];
//Una pequeña validación para subir archivos
var extencion = file.name.split('.').pop().toLowerCase();
var permitido = ['doc','docx','xls','xlsx','ppt','pptx','zip','rar','pdf'];
if(permitido.indexOf(extencion) === -1) {
$.messager.alert('ERROR','Archivo no aceptado. Por favor seleccione un archivo, permitido (word, excel, power point, zip, rar o pdf)','error');
envia = false;
}else{
//Si el navegador soporta el objeto FileReader
if(window.FileReader){
reader = new FileReader();
//Llamamos a este evento cuando la lectura del archivo es completa
//Después agregamos la imagen en una lista
/*reader.onloadend = function(e){
mostrarImagenSubida(e.target.result);
};*/
//Comienza a leer el archivo
//Cuando termina el evento onloadend es llamado
reader.readAsDataURL(file);
}
//Si existe una instancia de FormData
if(formdata){
envia = true;
//Usamos el método append, cuyos parámetros son:
//name : El nombre del campo
//value: El valor del campo (puede ser de tipo Blob, File e incluso string)
formdata.append('file_upload[]', file);
formdata.append('campos',variables);
}
}//valida extencion
}//for
//Por último hacemos uso del método proporcionado por jQuery para hacer la petición ajax
//Como datos a enviar, el objeto FormData que contiene la información de los archivos
if(envia){
if(formdata){
$.ajax({
url : '<?php echo $this->url(array('controller'=>'Circulares','action'=>'adjuntaarchivo'))?>',
type : 'POST',
data : formdata,
processData : false,
contentType : false,
success : function(res){
document.getElementById('response').innerHTML = res;
}
});
}
}
//});//eventos onchanged
}, false);//subida