tupali_fork/upload/Simple-Ajax-Uploader-master/extras/sessionProgress.php

46 lines
1.2 KiB
PHP
Executable File

<?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));