]> git.p6c8.net - jirafeau_project.git/blobdiff - lib/functions.js.php
Jirafeau version 4.5.0
[jirafeau_project.git] / lib / functions.js.php
index 1114dfd6188d2444e295be047c33c4ac5559772d..e7bc339ce6fa62c3b9ab5e72f76f5c263f5df572 100644 (file)
@@ -529,11 +529,11 @@ function async_upload_push (code)
             }
             else
             {
-                if (req.status == 413) // Request Entity Too Large
-                {
-                    // lower async_global_max_size and retry
-                    async_global_max_size = Math.max(1, parseInt (async_global_max_size * 0.8));
-                }
+                // lower async_global_max_size and retry
+                // This can occurs in several cases:
+                // - Request Entity Too Large (413) due to server bad configuration relative to PHP configuration
+                // - Server Error (500) which can happen when PHP's `max_execution_time` is too low comparared to sent size
+                async_global_max_size = Math.max(1, parseInt (async_global_max_size * 0.5));
                 async_upload_push (async_global_last_code);
                 return;
             }
@@ -642,9 +642,11 @@ function upload_time_estimation_add(total_transfered_size)
     // Let's compute the current speed
     var d = new Date();
     var speed = upload_time_estimation_moving_average_speed;
-    if (d.getTime() - upload_time_estimation_transfered_date != 0)
+    if (d.getTime() - upload_time_estimation_transfered_date != 0) {
         speed = (total_transfered_size - upload_time_estimation_transfered_size)
                 / (d.getTime() - upload_time_estimation_transfered_date);
+        speed = Math.max(0, speed);
+    }
     // Let's compute moving average speed on 30 values
     var m = (upload_time_estimation_moving_average_speed * 29 + speed) / 30;
     // Update global values
@@ -712,7 +714,7 @@ function milliseconds_to_time_string (milliseconds)
 function upload_time_estimation_time()
 {
     // Estimate remaining time
-    if (upload_time_estimation_moving_average_speed == 0)
+    if (upload_time_estimation_moving_average_speed <= 0)
         return 0;
     return (upload_time_estimation_total_size - upload_time_estimation_transfered_size)
             / upload_time_estimation_moving_average_speed;

patrick-canterino.de