我一开始就对PhP File Upload进度监视器有问题。
首先,以下是相关的PhP.ini设置(指令,本地值和主值):
session.upload_progress.cleanup On On session.upload_progress.enabled On On session.upload_progress.freq 1% 1% session.upload_progress.min_freq 1 1 session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefix upload_progress_ upload_progress_
这是表格(简体):
<form id="fileupload" style="position:relative;" target="iframe_fileupload" action="http://www.athiyoga.org/testupload.php" method="POST" enctype="multipart/form-data"> <input type="hidden" name="<?echo ini_get("session.upload_progress.name");?>" value="first"/> <input type="file" name="file_1"> <button type="submit" >Start Submit</button> </form>
我在同一PhP文件(当然,是JS脚本)中有JQUERY Ajax代码,如下所示:
$('#fileupload').submit(function(event){ //UPDATED THIS PART after reading: http://stackoverflow.com/questions/19336610/delay-in-populating-session-upload-progress-data //POSTING the magic variable PHP_SESSION_UPLOAD_PROGRESS during status inquiry too var params = {PHP_SESSION_UPLOAD_PROGRESS:"first", some_var:20 }; var data_params = jQuery.param( params ); setTimeout(function(){ upload_promise = $.ajax({ url: 'upload_status.php', data: data_params, dataType: 'html', type : 'POST', cache : false }); $.when(upload_promise).done(function(status_response){ $('#response_status').html(status_response); }); },5000); ... ...
upload_status.php只是回显$ _SESSION数组。我还在form- php中设置了一个测试会话变量,以确保AJAX(通过upload_status.php)选择该会话变量。是的 但是在$ _SESSION数组中不是上载状态的符号(无变量/索引)!文件被上传。我确保文件足够大,以便5000ms足以报告某些中间状态。
我之前从未实现过PhP文件上传进度栏,所以我想知道是否丢失了一些东西。一旦我在上传中获得一个状态点,我就可以完成其余的工作。
谢谢
可能有一些问题,我只列出了一些问题。
这可以帮助您跟踪进度条http://pecl.php.net/package/uploadprogress
希望这可以帮助您找出问题所在。