From: Patrick Canterino Date: Sun, 10 Nov 2024 13:03:40 +0000 (+0100) Subject: Store filesize before encrypting the file X-Git-Tag: 4.6.1~8^2 X-Git-Url: https://git.p6c8.net/jirafeau.git/commitdiff_plain/37a47dbd255874bcdfc14f2e7a5dc1461ddd145e?hp=1ff37f5b15ca71640bd4b40c9261ce4cb1b12f72 Store filesize before encrypting the file This currently applies only for async uploads. Otherwise we would send the size of the encrypted file and the data of the unencrypted file. The encrypted file is usually larger than the unencrypted one. So the browser expects more data and aborts the download because it thinks it didn't receive all the data. --- diff --git a/lib/functions.php b/lib/functions.php index 2843e29..9091af7 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -1197,6 +1197,11 @@ function jirafeau_async_end($ref, $code, $crypt, $link_name_length, $file_hash_m return "Error: referenced file does not exist"; } + /* Store filesize before encrypting the file */ + /* Otherwise we would send the size of the encrypted file and the data of the unencrypted file */ + /* This would break some browsers */ + $size = filesize($p); + $crypted = false; $crypt_key = ''; if ($crypt == true && extension_loaded('sodium') == true) { @@ -1209,7 +1214,6 @@ function jirafeau_async_end($ref, $code, $crypt, $link_name_length, $file_hash_m } $hash = jirafeau_hash_file($file_hash_method, $p); - $size = filesize($p); $np = s2p($hash); $delete_link_code = jirafeau_gen_random(5);