PHP でアップロード進行状況バーを作成しようとしています。PHP 5.4 の新機能、upload progress sessionを見ました。
これは私のHTMLコードです:
<form id="upload" action="ajax/progress.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="dupload" />
<input id="file1" type="file" name="file1" />
<input class="btn primary" type="submit" value="Upload" />
</form>
そして、これはprogress.phpです:
<?php
session_start();
$key = ini_get("session.upload_progress.prefix") . 'dupload';
if (!empty($_SESSION[$key])){
$current = $_SESSION[$key]["bytes_processed"];
$total = $_SESSION[$key]["content_length"];
echo $current < $total ? ceil($current / $total * 100) : 100;
}
else {
var_dump($_SESSION);
var_dump($_FILES);
}
AJAX:
$('#upload').submit(function () {
interval_id = setInterval(function () {
$.ajax({
url: "ajax/progress.php6",
type: "POST",
success: function (data) {
console.log(data);
}
});
}, 200);
return false;
});
すべてのini設定は正しいです。(セッションが有効で、名前とプレフィックスが正しい)
私は常に空のセッション配列を取得しています。どうしたの?
ありがとう!