在文件上传时回显消息

时间:2013-01-12 20:07:31

标签: php

我希望在文件上传时回显一条读取“文件上传”的消息但该消息只有在完成上传后才会回显,是否还有另一种方式?

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))

  {
     echo "file uploading";
     header("location:somewhere.php?uploaded")
  } 

else echo "oops!";

3 个答案:

答案 0 :(得分:3)

仅在文件上传后打印,因为当您执行PHP脚本时, 文件上传后

解决方案是使用PECL upload progress包,但这意味着安装PHP的扩展,您可能会或可能无法对您的主机执行此操作。

答案 1 :(得分:2)

您现在遇到的是异步的必要性。同步是你现在正在做的事情,即发出一个新的请求,从而上传图片,只允许在请求后显示消息

您可以在后台上传图片,并使用AJAXjQuery在页面上显示加载gif或其类似内容。这允许您在上传时显示消息。

有关jQuery的详细介绍,请检查these videos from the new boston。特别是对于AJAX,请查看episode 101 and following

答案 2 :(得分:1)

您的代码是真正的teresko。这很糟糕,真的很糟糕。

第一件事。 位置 header();函数应为L(大写在Location:中),然后始终在标题内使用绝对URI( );喜欢..

header("Location: http://site.com/somewhere.php?uploaded");好吗?好!

现在,关于显示Loading..,您应该使用sleep();功能通过在其中输入秒数来延迟任何正在进行的过程,如此处所示sleep(05);

现在,关于你的代码:

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))

  {
     echo "file uploading";
      sleep(05);
     header("Location: http://www.site.com/somewhere.php?uploaded")
  } 

else echo "oops!";