提醒用户成功上传

时间:2014-05-15 18:20:35

标签: php html

目前使用表单上传文件。

表单位于index.html中,如下所示:

<div id="submit">
    <form action="upload.php" method="post" enctype="multipart/form-data">
    Select XML file: <input type="file" name="file"><br><br>
    <input type="submit" value="Upload">
    </form>
</div><!--end submit-->

upload.php文件如下所示:

<?php
move_uploaded_file ($_FILES['file'] ['tmp_name'], "uploads/{$_FILES['file'] ['name']}");
header('Location: index.html');
exit; ?>

文件上传到正确的位置但是,我需要一种方法来提醒用户上传成功。有人可以提供一些帮助吗?

3 个答案:

答案 0 :(得分:2)

你试试这个

<?php
if(move_uploaded_file ($_FILES['file'] ['tmp_name'], "uploads/{$_FILES['file'] ['name']}"))
{
echo "file uploaded";
header( "refresh:5;url=index.html" );
exit;
}
else
{
 echo "file not uploaded";
 header( "refresh:5;url=index.html" );
 exit;
 }
 ?>
header中的

会在5秒内将您重定向到index.html

答案 1 :(得分:0)

最简单的方法(如果您希望保留重定向)将index.html更改为index.php,然后使用标头函数将get参数添加到URL index.php?uploaded=1。然后在index.php页面中,检查如下参数:

if (isset($_GET['uploaded']) && $_GET['uploaded'] === 1) echo "Your upload/move was successful!";

答案 2 :(得分:0)

我建议考虑在PHP中实现flash消息。基本上,将消息存储在会话中并将其显示给用户。

有使用第三方代码here的示例。或者,您也可以推出自己的实现。有一个非常非常简单的例子here

显示基于GET参数的消息是有效的,但是只要点击特定的URL就会显示消息,这会让用户感到麻烦。

以下是很久以前我用过的一些功能(设置和打印会话消息)。我强烈建议在使用之前查看链接:

function set_session_message($type, $message) {
    $_SESSION['message'] = array('type' => $type, 'message' => $message);
}

function print_session_message() {
    $output = '';

    if (!empty($_SESSION['message'])) {            
        if ($_SESSION['message']['type'] == 'success') {
            $output = '<p class="success">' . $_SESSION['message']['message'] . '</p>';
        } elseif ($_SESSION['message']['type'] == 'error') {
            $output = '<p class="error">' . $_SESSION['message']['message'] . '</p>';
        }
    } 

    unset($_SESSION['message']);

    return $output;
}

有了这个,您要做的就是在成功上传时调用set_session_message(),重定向到您的索引页,然后拨打print_session_message()