【问题标题】:how to create an upload progressbar during fileupload in php如何在php中文件上传期间创建上传进度条
【发布时间】:2016-04-25 13:13:30
【问题描述】:

我正在尝试在上传文件时创建上传进度条。

这是我的 php 部分:

if($_SERVER['REQUEST_METHOD'] == 'POST')
{   
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
$root = '/users/'.$UserName.'/';
if (!is_dir($root))
{
    @mkdir('users/'.$UserName, 0777);

if (($_FILES["file"]["size"] < $MaxUploadSize) && in_array($extension, $allowedExts))

{
     echo 'upload successful';

      $data = explode(".",$_FILES["file"]["name"]);
      $newfilename = $realname;
      move_uploaded_file($_FILES["file"]["tmp_name"], 'users/'.$UserName.'/' . $newfilename);

}

else
{

  echo '<span class="failed">Upload failed!</span>';

}

}

} // endif SERVER REQUEST

对于进度条,我使用这个 javascript:

var bar = $('.bar');
var percent = $('.percent');
var status = $('#status');

$('#sfmform').ajaxForm({
beforeSend: function() {
    status.empty();
    var percentVal = '0%';
    bar.width(percentVal)
    percent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
    var percentVal = percentComplete + '%';
    bar.width(percentVal)
    percent.html(percentVal);
},
success: function() {
    var percentVal = '100%';
    bar.width(percentVal)
    percent.html(percentVal);

},
});

结合:http://malsup.github.com/jquery.form.js

我的表单如下所示:

 <form id="sfmform" action="" method="post" enctype="multipart/form-data">

<input type="file" name="file" id="file" multiple"" />

 <br />
<input type="submit" class="Button Primary" name="submit" value="Upload">
<br /><br />

</form>

进度条工作正常,但 php 回显没有显示,无论它们是成功还是失败。没有 js,回声效果很好!

我做错了什么?

【问题讨论】:

  • 你的 php 文件是否在 标签内
  • 不,我不在我的 php 文件中使用 html 标签

标签: php jquery file-upload


【解决方案1】:

我认为您必须在成功回调中收到回复:

success: function(data) {
    alert(data);
    var percentVal = '100%';
    bar.width(percentVal)
    percent.html(percentVal);

}

【讨论】:

  • 这确实有效,但他会提醒页面的完整 html;不仅是回声
  • 因为,您需要在您的 echo 之后紧跟一个 exit 以停止渲染进一步的输出。
  • 你是对的。现在效果很好!感谢您的解决方案
  • 很高兴它对您有所帮助 :) 编码快乐!
【解决方案2】:

使用变量检查上传是否成功,然后检查 html 正文中的值

PHP

$check=0;
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
  //php code
  if (($_FILES["file"]["size"] < $MaxUploadSize) && in_array($extension, $allowedExts))
{

  $check=1;
}
}

HTML

<html>
<body>
<!-- place your form -->
<?php if ($check==1)
      {
        echo "Upload Successful";
      }
 ?>
 </body>
 </html>

【讨论】:

  • 不,我试过这个但没有结果:回声不显示
猜你喜欢
  • 2012-09-02
  • 1970-01-01
  • 2014-01-20
  • 2011-12-09
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 2019-02-17
  • 2011-08-16
相关资源
最近更新 更多