0

我有一个小型上传系统来上传头像。我想显示一个带有 1 个按钮的警报框(上传成功)。这是我的 php 上传功能:

function change_profile_image($user_id, $file_temp, $file_extn){
    $file_path = substr(md5(time()), 0, 10) . '.' . $file_extn;
    move_uploaded_file($file_temp, 'images/profile/'.$file_path);
    Thumbnail('images/profile/', $file_path, 'images/thumbs/');
    mysql_query("UPDATE `users` SET `profile` = 'images/profile/" . mysql_real_escape_string($file_path) . "' WHERE `user_id` = " . (int)$user_id);
}

这是我调用函数的方式:

if (in_array($file_extn, $allowed) === true) {
                        change_profile_image($session_user_id, $file_temp, $file_extn);
                        header('Location: ' . $current_file);
                        exit();
                    }
4

1 回答 1

1

这可能是 jQuery 的工作。实际上,它可能

但是可能紧随其后的第二个(和更简单的)选项可能是传递一个 GET 参数作为确认:

header("Location: {$current_file}?loaded=ok");

然后在“当前文件”中检查它,可能在正文的末尾:

if (isset($_GET['loaded'])) {
    if ('ok' == $_GET['loaded'])
        $msg = "Loaded OK!";
    else
        $msg = "Oh noes! Error {$_GET['loaded']} while updating picture";
    // Remember, keep $msg without 'quote' "signs", or \"escape\" them properly
    print <<<DISPLAY_ALERT
<script>
    alert('$msg');
</script>
DISPLAY_ALERT;
}

注意:以上代码使用 PHP 的“这里文档”。它们的工作方式如下:字符串由<<<SOMESEQUENCEwhere you mustn not have any after引入SOMESEQUENCE。并由仅包含的单行终止,SOMESEQUENCE;任何地方都没有额外的空格。即使是一个空间的存在也会导致有时难以诊断的故障。此外,YOUR_SEQUENCE在 PHP 代码中必须是唯一的。您不能有两个具有相同序列的 heredocs(在紧要关头,给它们编号:SEQUENCE1, SEQUENCE2)。

在heredoc 中,您可以使用不带引号的字符串和回车符,因此当我无法使用适当的模板时,这是我最喜欢的包含HTML 片段的方式。

于 2013-09-05T21:31:52.360 回答