123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- /**
- * Simple Ajax Uploader
- * Version 2.6.2
- * https://github.com/LPology/Simple-Ajax-Uploader
- *
- * Copyright 2012-2017 LPology, LLC
- * Released under the MIT license
- *
- * Returns upload progress updates for browsers that don't support the HTML5 File API.
- * Falling back to this method allows for upload progress support across virtually all browsers.
- * Requires PHP 5.4+
- * Further documentation: http://php.net/manual/en/session.upload-progress.php
- *
- */
- session_start();
- if (!isset($_POST[ini_get('session.upload_progress.name')])) {
- exit(json_encode(array('success' => false)));
- }
- $key = ini_get('session.upload_progress.prefix') . $_POST[ini_get('session.upload_progress.name')];
- if (!isset($_SESSION[$key])) {
- exit(json_encode(array('success' => false)));
- }
- $progress = $_SESSION[$key];
- $pct = 0;
- $size = 0;
- if (is_array($progress)) {
- if (array_key_exists('bytes_processed', $progress) && array_key_exists('content_length', $progress)) {
- if ($progress['content_length'] > 0) {
- $pct = round(($progress['bytes_processed'] / $progress['content_length']) * 100);
- $size = round($progress['content_length'] / 1024);
- }
- }
- }
- echo json_encode(array('success' => true, 'pct' => $pct, 'size' => $size));
|