我想在PHP 5.4中使用新的session.upload_progress.name功能來獲取文件進度。基本的jQuery&PHP session.upload_progress.name
到目前爲止,我的代碼是這樣的:
<?
session_start();
?>
<!DOCTYPE html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type='text/javascript'>
$(document).ready(function() {
$("#jimbo").submit(function() {
setInterval(function() {
$.ajax({
url: "ajx.php",
success: function (data) {
$("#feedback").html(data + Math.random(999));
}
});
//$("#feedback").html("hello " + Math.random(999));
},500);
//return false;
});
});
</script>
</head>
<body>
<h1><a href="test.php">Upload</a></h1>
<br/>
<form action="test.php" method="POST" enctype="multipart/form-data" id='jimbo'>
<input type="hidden" name="<?=ini_get('session.upload_progress.name'); ?>" value="myupload" />
<input type="file" name="file1" />
<input type="submit" id='submitme' />
</form>
<div id="feedback">Hello</div>
</body>
</html>
然後是ajx.php文件:
<? session_start(); ?>
<pre>
<?
echo "SESSIONVAR<br/>";
var_dump($_SESSION);
?>
</pre>
現在。當我點擊提交按鈕(選擇文件後)時,文件開始上傳,但setinterval不啓動。但是,如果我有return false;
那裏,我得到setInterval結果,但該文件不會開始上傳。如果我提交的文件沒有返回false,並在單獨的窗口中查看ajx.php的內容,我可以看到變量工作正常並正在更新。那麼一旦表單被點擊後,如何獲得#feedback div來更新呢?
注會話陣列是填充,這裏的問題是與jQuery的,別無其他。
你有沒有想過使用JavaScript的XMLHttpRequest的」對象呢? –
@ReinderWit是的,他使用和Ajax請求:'$ .ajax' –
有趣的是,我測試了它的根。對我而言,所有上傳都不提供進度。在200 MB文件上,進程將不顯示。該文件〜5-10 MB的工作 –