webpay transbank que para chile flash upload nginx swfupload

flash - transbank - webpay chile para woocommerce



SWFUpload cierra prematuramente la conexión al cargar(nginx 499) (3)

En caso de que no aparezca nada específico aquí, aquí hay una lista de cosas que les preguntaría a los usuarios para quienes no funcionó.

  • ¿Qué tipo de conexión de internet tienes? ¿Estás detrás de un firewall de empresa?

  • ¿Qué tipo de archivo intentabas cargar (tipo y tamaño de archivo)? ¿En qué medio se almacenó ese archivo? (Para excluir errores de lectura cuando se carga desde CD, por ejemplo)

  • Versión del sistema operativo, versión del navegador, versión Flash, firewall personal y / o software antivirus instalado (para comprobar los patrones)

  • ¿Funcionó en el segundo intento?

Estoy usando swfupload para subir archivos a nginx. Funciona bien para mí y para el 99% de nuestros usuarios. Para un par de usuarios, sin embargo, falla de alguna manera durante la carga. Abre una conexión, pero parece cerrarla antes de que esté completa: nginx informa un estado 499 en su registro de acceso, que es NGX_HTTP_CLIENT_CLOSED_REQUEST.

Logré conseguir uno de esos usuarios para obtener más información. Están ejecutando Flash 10.0.42, en XP con Firefox 3.5.7.

¿Alguien ha visto algo como esto? ¿Alguna sugerencia para solucionarlo / cómo podría investigar más?

-Jonathan


Algunas posibilidades,

  • El usuario actualizó la página antes de que se completara la carga.

  • Recorte de la conexión de internet del usuario o hipotecado durante la carga.

  • Si está utilizando PHP (estoy adivinando) compruebe la siguiente configuración en su php.ini.

max_execution_time

Si el script tarda demasiado en ejecutarse, el servidor lo detendrá en función de esta configuración.

max_file_uploads

Si el usuario intenta cargar más archivos que esta configuración a la vez, esa podría ser la causa.

upload_max_filesize

Si alguno de los archivos es más grande que esta configuración, el archivo no se cargará. Esto se puede manejar antes de que llegue al servidor en el lado del cliente con:

Lo siento, pero sin información más específica, no puedo limitarlo más.

Si solo afecta al 1% de tus usuarios, eso es aceptable en mi opinión;) Personalmente, no perdería el tiempo solucionando un error del 1% a menos que sea el cliente.


El error 499 se produce cuando:

  • El usuario envía con éxito todos los datos (incluido el archivo de carga) al servidor
  • El usuario cancela la solicitud antes de recibir la respuesta (es decir, al actualizar la página, se cancelarán todas las solicitudes actuales)
  • El servidor (nginx) recibe una solicitud y la procesa con éxito (guarde el archivo cargado). El servidor subyacente devuelve 200 respuestas.
  • Nginx obtiene respuesta del servidor subrayado, pero cuando quiere enviar una respuesta al cliente (para la solicitud POST), el cliente ha cerrado la conexión y se ha ido. Entonces el servidor no puede pasar la respuesta al cliente.

¡Entonces el error 499 es una carga exitosa desde el punto de vista del servidor! Pero como el cliente no recibe ninguna respuesta, nginx lo marca como un error 499.