English 中文(简体)
将不侵犯性的进展限制在旧学校档案库
原标题:Adding unobtrusive progress bar to old-school file uploads
  • 时间:2009-10-30 14:58:55
  •  标签:
最佳回答

我们通过安装PECL延伸码<>pecl-uploadprogress,实施了这一非常简单的做法,并在表格上添加了一个简单的AJAX呼号:

1. 产生上载钥匙:

$upload_id = genUploadKey();
function genUploadKey ($length = 11) {
  $charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  for ($i=0; $i < $length; $i++)
    $key .= $charset[(mt_rand(0,(strlen($charset)-1)))];
  return $key;
}

创建美国宇宙航空研究开发机构后备手(例如,上载推进器):

extract($_REQUEST);

// servlet that handles uploadprogress requests:
if ($upload_id) {
  $data = uploadprogress_get_info($upload_id);
  if (!$data)
    $data[ error ] =  upload id not found ;
  else {
    $avg_kb = $data[ speed_average ] / 1024;
    if ($avg_kb<100)
      $avg_kb = round($avg_kb,1);
    else if ($avg_kb<10)
      $avg_kb = round($avg_kb,2);
    else $avg_kb = round($avg_kb);

    // two custom server calculations added to return data object:
    $data[ kb_average ] = $avg_kb;
    $data[ kb_uploaded ] = round($data[ bytes_uploaded ] /1024);
  }

  echo json_encode($data);
  exit;
}

// display on completion of upload:
if ($UPLOAD_IDENTIFIER) {
...

下载图书馆和j Query.uploadprogress 图书馆(也包括上述幻灯片),并采用以下形式:

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.uploadprogress.0.3.js"></script>
<script type="text/javascript">
jQuery(function () {
    // apply uploadProgress plugin to form element
    // with debug mode and array of data fields to publish to readout:
    jQuery( #upload_form ).uploadProgress({
        progressURL: uploadprogress.php ,
        displayFields : [ kb_uploaded , kb_average , est_sec ],
        start: function() {
            $( .upload-progress ).show();
        },
    success: function() {
            $( .upload-progress ).hide();
            jQuery(this).get(0).reset();
        }
    });
});
</script>

在您的上载表格中添加:

<input name="UPLOAD_IDENTIFIER" type="hidden" value="$upload_id" />

这应当做到。 这是从我们的法典基础中提取的,可能无法外出。 但是,它应当告诉大家这一想法。

问题回答

上载(a j Query plugin)中使用的技术是否满足了你的需要? http://www.uploadification.com/demo/rel=“nofollow noretinger”>Demo

你们必须检查档案的尺寸,在服务器上安装透镜,然后在每台Ajax的客户上安装,在那里,你可以绘画进展情况。 (负责事先检查霍乱数据的规模,以计算扫描;-)





相关问题
热门标签