HTML加载的图像在刷新后消失


HTML loaded image goes away after refresh

所以这是一个我从未经历过的奇怪现象,因为我在图像上传时有一个HTML表单(正是W3上的表单)。当点击时,它可以正确地完成任务,并将用户配置文件图片推入文件夹,同时将文件名保存在数据库中。在上传的下面,我有一个小的图像标签,上面吐出上传的个人资料图片。最终目标是在会话存在时,该配置文件图片始终显示在页面上。上传后,它运行得非常好,并显示个人资料图片。刷新一次后,找不到图像,alt="blank"将取而代之。数据库中的位置仍然正确,所以我认为这不是问题所在。有错误吗?我需要在加载时使用JS吗?图像标签只工作一次吗?请帮忙并感谢您花时间阅读本文。

PHP:

echo '<img src="'.$loaded_profile_picture.'"id="HOMEPROFILE" alt="blank" style="width:128px;height:128px">';
//$loaded_profile_picture has the value uploads/photo.jpg

Classes.php:

    public function addProfilePicture(){
        include_once "conn.php";
        $sql=$dbh->prepare("UPDATE users SET UserProfilePicture=:UserProfilePicture WHERE UserName=:UserName;");
        $sql->execute(array(
            'UserProfilePicture'=>$this->getUserProfilePicture(),
            'UserName'=>$_SESSION['UserName'],
            ));
    }

图片上传(可能是罪魁祸首):

        if($uploadsuccess&&move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_file)){
                    echo " The file ".basename($_FILES['fileToUpload']['name'])." has been uploaded.";
                    $user->setUserProfilePicture($target_file);
                    $user->addProfilePicture();
                    if($user->getUserProfilePicture()!=NULL){
                        echo '<img src="'.$target_file. '" alt="nom">'; 
                    }
        }

编辑:虽然许多用户都有类似的问题(即图像显示与<img src=">不起作用),但我尝试过查看localhost:88888/examplep/LocalPost/pages/uploads/photos.jpg,它显示得很好。我还更改了Windows7上的文件权限,但运气不佳。谢谢你的辛勤工作,我会继续寻找的。

编辑:我通过使用$_SESSION["UserProfilePicture"]解决了这个问题,它在刷新后仍然存在。这并不能解决问题。我仍然非常希望有人能帮我找出问题所在,因为以后我想显示其他人的个人资料图片,这显然是会话变量无法做到的。

首先,您丢失的}设置脚本的末尾

    if($uploadsuccess && move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_file)){
                    echo " The file ".basename($_FILES['fileToUpload']['name'])." has been uploaded.";
                    $user->setUserProfilePicture($target_file);
                    $user->addProfilePicture();
                    if($user->getUserProfilePicture()!=NULL){
                        echo '<img src="'.$target_file. '" alt="nom">'; 
                    }
}

检查一下刷新页面后是否会得到$loaded_profile_picture变量的值?

如果你得到了$loaded_profile_picture变量的值,那么检查它是否与你以前的路径相同?