我想在文件上传时回显一条读取“文件上传”的消息,但该消息仅在完成上传后才被回显,还有另一种方法吗?
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "file uploading";
header("location:somewhere.php?uploaded")
}
else echo "oops!";
我想在文件上传时回显一条读取“文件上传”的消息,但该消息仅在完成上传后才被回显,还有另一种方法吗?
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "file uploading";
header("location:somewhere.php?uploaded")
}
else echo "oops!";
它仅在文件上传后打印,因为那是在文件上传后执行 PHP 脚本的时候。
一个解决方案是使用 PECL上传进度包,尽管这意味着安装 PHP 扩展,您可能无法使用您的主机执行此操作。
您现在遇到的是异步执行某些操作的必要性。同步是您现在正在做的事情,即触发一个新请求并上传图片,它只允许在请求之后显示消息。
您可以在后台上传图像并使用AJAX和jQuery在页面上显示加载 gif 或类似的内容。这允许您在上传时显示消息。
有关 jQuery 的良好介绍,请查看新 boston 中的这些视频。专门针对 AJAX,请查看第 101 集和以下内容。
第一件事。位置 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!";