【问题标题】:want to show the newly uploaded image on page reload and page refreshing想要在页面重新加载和页面刷新时显示新上传的图像
【发布时间】:2014-02-13 11:31:48
【问题描述】:

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

最初,我从数据库 (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
}
?>

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

【问题讨论】:

  • 如果我们要查看您的问题所在,我们将需要您的代码。
  • @ShivanRaptor-我已经在这里复制了我的代码。现在你可以看看它。
  • @Justice- 我已经在这里复制了我的代码。现在你可以看看它。

标签: php mysql


【解决方案1】:

在脚本开始时,如果已上传,则存储已发布的文件。 然后稍后从数据库中获取存储的图像进行显示。

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

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

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

【讨论】:

  • @BazzPsychoNut- 实际上我是 php 新手。您能进一步解释一下您在尝试 2 说什么吗?
  • @BazzPsychoNut- 我正在从数据库中检索上传的图像,但它只是存储在数据库中而不显示在网页上。
最近更新 更多