У меня есть проблема с PhP File Upload progress monitor в самом начале.
Во-первых, здесь приведены соответствующие настройки 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>
У меня есть JQuery Ajax-код, в том же файле PhP (конечно, как JS-скрипт), как в:
$('#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! Файлы загружаются. Я убедился, что файлы достаточно большие, так что 5000 мс достаточно, чтобы сообщить о промежуточном статусе.
Я никогда не реализовывал индикатор загрузки файлов PhP, поэтому я задаюсь вопросом, не пропал ли я что-то. Как только я получаю один пункт статуса в загрузке, я смогу сделать все остальное.
благодаря
Могут быть некоторые проблемы, я перечислял несколько из них.
Это может помочь вам отслеживать ваш индикатор выполнения http://pecl.php.net/package/uploadprogress
Надеюсь, это поможет вам решить проблему.