Parece que no he comunicado claramente mi problema. Necesito enviar un archivo (usando AJAX) y necesito obtener el progreso de carga del archivo usando el Nginx HttpUploadProgressModule. Necesito una buena solución a este problema. Lo he intentado con el plugin jquery.uploadprogress, pero estoy teniendo que volver a escribir mucho para que funcione en todos los navegadores y enviar el archivo usando AJAX.jQuery Upload Progress y AJAX file upload
Todo lo que necesito es el código para hacer esto y debe funcionar en todos los principales navegadores (Chrome, Safari, Firefox e IE). Sería aún mejor si pudiera obtener una solución que manejará múltiples cargas de archivos.
Estoy utilizando el
jquery.uploadprogress plugin para obtener el progreso de carga de un archivo desde el NginxHttpUploadProgressModule. Esto está dentro de un iframe para una aplicación de Facebook. Funciona en Firefox, pero falla en Chrome/Safari.
Cuando abro la consola obtengo esto.
Uncaught ReferenceError: progressFrame is not defined
jquery.uploadprogress.js:80
¿Alguna idea de cómo arreglaría eso?
También me gustaría enviar el archivo usando AJAX cuando se completa. ¿Cómo implementaría eso?
EDIT:
necesito esto pronto y es importante, así que voy a poner una recompensa de 100 puntos sobre esta cuestión. La primera persona en responder recibirá los 100 puntos.
EDIT 2:
Jake33 me ayudó a resolver el primer problema. La primera persona en dejar una respuesta con la forma de enviar el archivo con ajax también recibirá los 100 puntos.
veo que utiliza el navegador oler para detectar Safari (navegador oler suele mal visto), por lo que * progressFrame * es solo se usa con Safari/Chrome (no sé por qué). La parte donde se produce el error parece ser donde el script intenta hacer referencia a * progressFrame * simplemente buscando su nombre en el ámbito global en lugar de utilizar una función como 'document.getElementsByName'. – jhartz
No estoy seguro de lo que quiere decir con "enviarlo usando AJAX cuando se completa". ¿No representa la barra de progreso el progreso del envío? ¿Eso no significa que ya se envió una vez que esté completo? ¿Quiere decir que desea que el envío de formulario original sea conducido por AJAX para que no cause una actualización de página después? – slifty
Sí. Sí, pero funciona como un envío de formulario. Eso es exactamente lo que quiero. –