Retrieve the upload progress

If you want to use the uploadprogress, your system must have apc or uploadprogress extension. We suggest apc.

You can check your system about existence of apc here:  http://your-mediamosa/admin/reports/status/php
APC (Alternative PHP Cache is a PECL extension of PHP) should be installed on the server where the users upload their files.

Your page should contains the following:

  * Determine which upload progress implementation to use, if any available.
function upload_progress_implementation() {
   static $implementation;
   if (!isset($implementation)) {
     if (extension_loaded('apc') && ini_get('apc.rfc1867')) {
       $implementation = 'apc';
     else if (extension_loaded('uploadprogress')) {
       $implementation = 'uploadprogress';
   return $implementation;

... Your Drupal form should have:

   // Uploadprogress field.
   if ($implementation = upload_progress_implementation()) {
     $upload_progress_key = md5(mt_rand());
      if ($implementation == 'apc') {
       $form['APC_UPLOAD_PROGRESS'] = array('#type' => 'hidden', '#value' => $upload_progress_key);
     else if ($implementation == 'uploadprogress') {
       $form['UPLOAD_IDENTIFIER'] = array('#type' => 'hidden', '#value' => $upload_progress_key);

The id (upload progress key) should be random. Don't use constant.

Then you can ask the /mediafile/uploadprogress [GET] REST call with id=$upload_progress_key .

If you don't want to use Drupal, this is the pure PHP / HTML version:

<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="<?php echo $upload_progress_key?>" />
According to the PECL ticket we should write the progress key before the file input. Eg.

<form action="http://upload.your-mediamosa/mediafile/upload?upload_ticket=xxx" enctype="multipart/form-data" method="POST">
   <input id="progress_key" type="hidden" name="APC_UPLOAD_PROGRESS" value="2685770" />
   <input class="FlesFileInput" type="file" value="" name="file" />
   <input type="hidden" value="http://your-wle/test.html" name="redirect_uri" />
   <input type="hidden" value="true" name="create_still" />
   <input type="submit" />