想要在页面重新加载和页面刷新时显示新上传的图像

时间:2014-02-13 11:31:49

标签: php mysql

我有一个表单,其中有一个上传按钮和一个删除按钮。

最初,我正在从数据库(Mysql)检索的表单上显示一个图像。

当我上传新图片时,图片会上传,但上一张图片(也就是初始图片)也会显示在图片上。

当我刷新页面或重新加载它然后没有显示图像时,我得到的是没有任何图像的框(即初始图像)。

我想在上传或删除新图片之前始终显示上传的图片,并删除初始图片的那一帧。我怎么能在PHP中这样做? 此代码在打开表单时显示初始图像,直到我没有更新:

// Connection to Database 
$result1= mysql_query( "SELECT images FROM $table" ) or die("SELECT Error".mysql_error()); 
$row=mysql_fetch_array($result1);
echo "<img src='data:images/jpeg;base64," .base64_encode( $row['images'])."'width='100' height='100' />";

这是上传图片的代码:

$UPLOADDIR = "upload/";
if(isset($_POST['Submit']))
{
        foreach ($_FILES as $key => $value)
        {
            $image_tmp = $value['tmp_name'];
            $image = $value['name'];
            $image_file = "{$UPLOADDIR}{$image}";
            if(move_uploaded_file($image_tmp,$image_file))
        {
                 mysql_select_db($database) or die("Unable to select database");
             $result1= mysql_query( "SELECT images FROM $table WHERE images='$image'" )or die("SELECT Error: ".mysql_error()); 
         $sql="DELETE FROM $table WHERE ID!=1";
         mysql_select_db($database) or die("Unable to select database");
         $ret=mysql_query($sql,$conn);
         if(!$ret)
        {
             die(mysql_error());
        }
                $query = "INSERT INTO $table (images) VALUES ('$image')";
        $data = mysql_query ($query)or die(mysql_error());
        echo <<<HEREDOC
                <div style="float:left;margin-right:10px;">
                <img src="{$image_file}" alt="file not found" height="100"         width="100"/>            
                </br>
                </div>
                HEREDOC;
        }
        else
       {
            echo "<h1>image file upload failed, image too big after compression</h1>";
       }
    }
}
else
{
    ?> 
    <form name='newad' method='post' enctype='multipart/form-data' action=''>
    <table>
    <tr>
    <td><input type='file' name='image'></td>
    </tr>
    <tr>
    <td><input name='Submit' type='submit' value='Upload image'></td>
    </tr>
    </table>
    </form>
    <?php
}
?>

我上传的图片保存在数据库中,点击上传按钮后显示上传的图片,但是当我重新加载页面或再次打开表单时,没有图像。

1 个答案:

答案 0 :(得分:0)

在脚本开头,存储已上传的文件(如果已上载)。 然后稍后从数据库中获取存储的图像以进行显示。

编辑以获取更多详细信息:

当您将表单提交到php脚本时,请检查$ _FILES全局是否包含上载的文件。如果是这样,请将文件(最好使用新的随机名称)存储在映像目录中的某个位置,以及数据库中的位置。然后在显示图像时进一步向下,从数据库中检索图像的URL以放入img src标记。

但你应该开始摆弄,直到它是正确的。