Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML加载的图像在刷新后消失_Php_Html_Image - Fatal编程技术网

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

Php HTML加载的图像在刷新后消失,php,html,image,Php,Html,Image,所以这是一个我从未经历过的奇怪现象,因为我在图像上传上有一个HTML表单(正好是W3上的那个)。当点击时,它会正确地完成它的工作,并在将文件名保存到数据库时将用户配置文件图片推送到文件夹中。在上传的下面,我有一个小小的图像标签,它会弹出上传的个人资料图片。最终目标是在会话存在时,在页面上不断显示配置文件图片。当上传时,它工作得非常好,并显示个人资料图片。刷新一次后,找不到图像,alt=“blank”将接管。数据库中的位置仍然正确,所以我认为这不是问题所在。有错误吗?我需要使用JS onload吗

所以这是一个我从未经历过的奇怪现象,因为我在图像上传上有一个HTML表单(正好是W3上的那个)。当点击时,它会正确地完成它的工作,并在将文件名保存到数据库时将用户配置文件图片推送到文件夹中。在上传的下面,我有一个小小的图像标签,它会弹出上传的个人资料图片。最终目标是在会话存在时,在页面上不断显示配置文件图片。当上传时,它工作得非常好,并显示个人资料图片。刷新一次后,找不到图像,alt=“blank”将接管。数据库中的位置仍然正确,所以我认为这不是问题所在。有错误吗?我需要使用JS onload吗?图像标签只工作一次吗?请帮助并感谢您抽出时间阅读此文章

PHP:

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

if($uploadsuccess&&move_-uploadd_文件($_文件['fileToUpload']['tmp_-name'],$target_文件)){
回显“文件”。已上载基本名称($_FILES['fileToUpload']['name']);
$user->setUserProfilePicture($target_文件);
$user->addProfilePicture();
如果($user->getUserProfilePicture()!=NULL){
回声';
}
}
编辑: 虽然许多用户都有类似的问题(即),但我试过查看localhost:8888/xampp/LocalPost/pages/uploads/photos.jpg,它显示得很好。我还更改了Windows7上的文件权限,但运气不好。谢谢你的辛勤工作,我会继续寻找

编辑:
我通过使用$\u 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">'; 
                    }
}
if($uploadsuccess&&move_-uploadd_文件($_文件['fileToUpload']['tmp_-name'],$target_文件)){
回显“文件”。已上载基本名称($_FILES['fileToUpload']['name']);
$user->setUserProfilePicture($target_文件);
$user->addProfilePicture();
如果($user->getUserProfilePicture()!=NULL){
回声';
}
}

检查刷新页面后是否会获得
$loaded\u profile\u picture
变量的值


如果您获得了
$loaded\u profile\u picture
变量的值,那么请检查它是否与之前的路径相同?

我假设图像存在于uploads/photo.jpg?没错,或者至少用户提交photo.jpg,网站将其放入uploads文件夹。提交后,我会在uploads文件夹和数据库中看到永久的图像。uploads/photo.jpg仍然存在,这让我很困惑,为什么刷新时会出现alt=“blank”。就像它第二次忽略它一样。这可能是权限问题吗?该脚本在刷新后没有读取权限嗯,可能是我从未听说过这样的。您知道如何修复它或使用任何资源来帮助理解这一点吗?感谢您使用FTP客户端查看文件的权限?并将其与其他权限进行比较。我不确定我是不是在抓救命稻草。。真奇怪!哎呀,很抱歉我忘了把它复制过来,我只剪掉了相关的片段。是的,我在我的文件中有}更深入的内容,抱歉,但感谢您的时间。嗯,我接受了您的建议,使用echo$loaded_profile_图片,并在第一页load it将其完美地打印出来上载/photo.jpg。当我恢复精神时,回声消失了;问题一定在变量中。我的声明看起来像$loaded_profile_picture=$user->getUserProfilePicture();它仍在数据库中。。。至于会话,我将if(!isset($_session)){session_start();}放入其中,这可能与会话无关,但这意味着在刷新页面时没有获得$loaded_profile_picture的值。因此,首先尝试获取$loaded_profile_picture变量的值。您的意思是$loaded_profile_picture=$user->getUserProfilePicture()?有趣的是,在这行下面我加了$loaded\u profile\u picture=14;echo$loaded\u profile\u图片;然后打印出来14张。但当被带走时,什么都不会回响。我想你是对的,我下一步该怎么办?请回答谢谢,我试过echo$user->getProfilePicture();在刷新时,它掩盖了到底发生了什么,就像$user对象不存在一样。刷新是否会杀死对象?
    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">'; 
                    }
        }
    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">'; 
                    }
}