45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
|
<?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.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
// This "if" statement is only necessary for CORS uploads -- if you're
|
||
|
// only doing same-domain uploads then you can delete it if you want
|
||
|
if (isset($_SERVER['HTTP_ORIGIN'])) {
|
||
|
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
|
||
|
header('Access-Control-Allow-Credentials: true');
|
||
|
header('Access-Control-Max-Age: 86400'); // cache for 1 day
|
||
|
}
|
||
|
|
||
|
if (isset($_REQUEST['progresskey'])) {
|
||
|
$status = apc_fetch('upload_'.$_REQUEST['progresskey']);
|
||
|
} else {
|
||
|
exit(json_encode(array('success' => false)));
|
||
|
}
|
||
|
|
||
|
$pct = 0;
|
||
|
$size = 0;
|
||
|
|
||
|
if (is_array($status)) {
|
||
|
|
||
|
if (array_key_exists('total', $status) && array_key_exists('current', $status)) {
|
||
|
|
||
|
if ($status['total'] > 0) {
|
||
|
$pct = round(($status['current'] / $status['total']) * 100);
|
||
|
$size = round($status['total'] / 1024);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
echo json_encode(array('success' => true, 'pct' => $pct, 'size' => $size));
|