Mam w sumie bardzo krótki kod na temat nowości jaka pojawiła się już jakiś czas temu w PHP w wersji 5.4 - Session upload progress
Niestety, jednak nie wiem jak zabrać się aby skorzystać z tej nowości, PHP mam dokładnie w wersji 5.4.18 przy włączonych domyślnych ustawieniach session.upload_progress.*
Poniżej prezentuje kod (całość w jednym pliku):
<?php
if(isset($_GET['progress'])) { $key = ini_get("session.upload_progress.prefix") . 'demo';
if(isset($_SESSION[$key])) { // Jakby nie tworzyl klucza sesji $session_progress = $_SESSION[$key];
$progress = round(($session_progress['bytes_processed'] / $session_progress['content_length']) * 100
, 2
);
} else {
echo 'blad / zaladowano...'; }
}
?>
<!doctype html>
<head>
</head>
<body>
<section>
<form action="" method="POST" enctype="multipart/form-data" target="upload-frame">
<input type="hidden" name="
<?php echo ini_get("session.upload_progress.name"); ?>" value="demo">
<p>
<label>Plik:</label>
<input type="file" name="file" required="required">
</p>
<p><input type="submit" name="submit"></p>
</form>
<iframe id="upload-frame" name="upload-frame" width="500" height="400"></iframe>
<div id="file_upload_progress"></div>
</section>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
var uploading = false;
$('form').submit(function() {
uploading = true;
$('#upload-frame').one('load', function(){
uploading = false;
});
function update_file_upload_progress() {
$.get("?progress", function(data) {
$("#file_upload_progress").html(data);
if(uploading) {
setTimeout(update_file_upload_progress, 500);
}
})
.error(function(jqXHR, error) {
alert(error);
});
}
update_file_upload_progress();
});
});
</script>
</body>
</html>
Osoby, które miały już styczność z 'session upload progress' proszę o pomoc lub nakierowanie na rozwiązanie:)
Interesuje mnie najprostsze rozwiązanie (wyświetlanie wartości procentowych ładowania), bez zbędnych dodatków, APC, itd.
Z góry dzięki!
Ten post edytował kicaj 24.09.2013, 23:01:33