0

我想在文件上传时回显一条读取“文件上传”的消息,但该消息仅在完成上传后才被回显,还有另一种方法吗?

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

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

else echo "oops!";
4

3 回答 3

3

它仅在文件上传后打印,因为那是在文件上传执行 PHP 脚本的时候。

一个解决方案是使用 PECL上传进度包,尽管这意味着安装 PHP 扩展,您可能无法使用您的主机执行此操作。

于 2013-01-12T20:10:22.183 回答
3

您现在遇到的是异步执行某些操作的必要性。同步是您现在正在做的事情,即触发一个新请求并上传图片,它只允许在请求之后显示消息。

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

有关 jQuery 的良好介绍,请查看新 boston 中的这些视频。专门针对 AJAX,请查看第 101 集和以下内容

于 2013-01-12T20:15:03.023 回答
1

第一件事。位置 header();函数应该是L(在大写中Location:)然后,始终header() 中使用绝对 URI;像..

header("Location: the_location_url");好的?好的!

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

现在,关于您的代码:

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

  {
     echo "file uploading";
      sleep(05);
     header("Location: the_location_url")
  } 

else echo "oops!";
于 2013-01-12T20:36:32.937 回答