Autor Tema: Consulta sobre Blueimp Jquery Fileupload  (Leído 1213 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Neon08

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 12
  • -Receive: 23
  • Mensajes: 267
  • Perdí mi apuesta por el rock and roll
Consulta sobre Blueimp Jquery Fileupload
« : noviembre 20, 2014, 06:01:34 pm »
Hola amigos comunos.... desde hace un par de días me estoy quebrando la cabeza con un pluggin para cargar archivos vía ajax...
Estoy utilizando MVC.net 4.0 y Jquery 2.1.1 (la ultima estable) la cuestión es que he creado un formulario y todo para cargar una imagen...
Lo malo es que cuando cargo una nueva imagen me carga la anterior y la nueva (es decir q ahora tengo 3 imagenes cargadas) y así susesivamente... (es decir que la carga de archivos funciona pero como no hago un postback o recarga de la pagina, al cargar mas imagenes sobre el mismo control el request.files me va trayendo todas las q he ido cargando)

Me gustaría saber si alguien a trabajado con este control y hacer algo similar.... sino veré si lo hago por otro camino, aunq este me gustaba por la usabilidad que daba para ir subiendo varios e ir agregándoles descripción y nombres etc.

Muchas gracias de antemano... a continuacion les dejo el codigo de como lo estoy utilizando.

A continuacion pongo el codigo html

Código: [Seleccionar]
<div class="form-group">
                                <label class="col-md-4 control-label">Seleccione archivo</label>
                                <div class=" col-md-8">
                                    <input type="file" name="files[]" id="FUArchivoAsesor" accept=".pdf,.csv,.doc,.docx,.xls,.xlsx,text/plain,video/*,audio/*,image/*" class="form-control" />
                                </div>
                            </div>
                            <div class="text-center">
                                <button id="SubirArchivosAsesor" class="btn btn-primary btn-lg" onclick="javascript: return false;">Subir Datos</button>
                            </div>

Luego este es el codigo javascript (jquery)
Código: [Seleccionar]
$("#FUArchivoAsesor").fileupload({
autoUpload: false,
replaceFileInput: false,
url: '@Url.Action("GuardarArhivoAsesor")',
add: function (e, data) {
data.context = $('#SubirArchivosAsesor').click(function () {
data.submit();
});
},
done: function (e, data) {
var Salida = data.result;
if (Salida.Estado == 1) {
$('#NombreArchivo').val("");
$('#DescripcionArchivo').val("");
$('#FUArchivoAsesor').val("");
}
else {
$("#MensajeArchivo2").html("Ocurrió un error durante el proceso, por favor verifique sus datos");
$('#MensajeArchivo2').removeClass('hide');
}
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
}
});

$('#FUArchivoAsesor').bind('fileuploadsubmit', function (e, data) {
// The example input, doesn't have to be part of the upload form:
$("#MensajeArchivo").addClass("hide");
data.formData = {
NombreArchivo: $('#NombreArchivo').val(),
DescripcionArchivo: $('#DescripcionArchivo').val()
};
if (!data.formData.NombreArchivo || !data.formData.DescripcionArchivo) {
$("#MensajeArchivo").removeClass("hide");
return false;
}
});

y este es el codigo del controlados (server side del MVC)
Código: [Seleccionar]
[HttpPost]
[AllowAnonymous]
public ActionResult GuardarArhivoAsesor(string NombreArchivo, string DescripcionArchivo)
{
int EstadoOperacion = 1;
string MensajeOperacion = "El archivo ha sido cargado de manera exitosa";
string NombreArchivoGuardar = "";
try
{
Random rnd = new Random();
int IdAsesor = 1;
// Validate we have a file being posted
if (Request.Files.Count == 0)
{
return Json(new { Estado = EstadoOperacion, Mensaje = "No se han cargado ningun archivo" });
}
var file = Request.Files[0];
string Extension = Path.GetExtension(file.FileName);
string RutaAsesor = Server.MapPath("~/") + ConfigurationManager.AppSettings["RutaCargasAsesor"].ToString() + "/" + IdAsesor.ToString() + "/" + ConfigurationManager.AppSettings["RutaArchivosAsesor"].ToString();
if (!Directory.Exists(RutaAsesor))
{
Directory.CreateDirectory(RutaAsesor);
}
string RutaGuardado = "";
do
{
NombreArchivoGuardar = "ASE" + IdAsesor.ToString() + "_" + (rnd.Next(1, 1000).ToString()) + Extension;
RutaGuardado = RutaAsesor + "/" + NombreArchivoGuardar;
} while (System.IO.File.Exists(RutaGuardado));
file.SaveAs(RutaGuardado);
}
catch (Exception ex)
{
EstadoOperacion = 0;
MensajeOperacion = ex.ToString();
throw;
}
return Json(new { Estado = EstadoOperacion, Mensaje = MensajeOperacion, NombreArchivo = NombreArchivoGuardar });
}
La gran victoria que hoy parece fácil fue el resultado de pequeñas victorias que pasaron desapercibidas.