如何在没有保存到数据库的情况下在PHP中提交后显示或预览上传的图像?

时间:2013-04-29 17:28:33

标签: php

我的项目实际上涉及2个页面。第1页是一个表格,用于根据action="2page.php"将上传的图像提交到第2页,并显示和预览图像。它应该在客户端运行 - 服务器,这意味着不涉及将图像文件保存到其中的数据库,并将特定图像检索回我想要执行的页面。实际上,我已经编写了PHP脚本,如下所示:<?php echo $_GET[image]; ?>以显示在第二页上传图像,但它无法正常工作。

4 个答案:

答案 0 :(得分:1)

如果您的目标是上传图像并将其存储在服务器上的目录中,那么此代码示例可能会帮助您入门(尽管我不会发誓它是无错误或安全的)。这是一个单页表单,用于上传,保存和显示图像。

<?php
// prevent timezone warnings
date_default_timezone_set('America/New_York');

// set the upload location
$UPLOADDIR = "images/";

// if the form has been submitted then save and display the image(s)
if(isset($_POST['Submit'])){
    // loop through the uploaded files
    foreach ($_FILES as $key => $value){
        $image_tmp = $value['tmp_name'];
        $image = $value['name'];
        $image_file = "{$UPLOADDIR}{$image}";

        // move the file to the permanent location
        if(move_uploaded_file($image_tmp,$image_file)){
            echo <<<HEREDOC
<div style="float:left;margin-right:10px">
    <img src="{$image_file}" alt="file not found" /></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)

使用jQuery将文件发送到php脚本并返回jQuery的临时名称和路径,并将响应放在<img>上,然后如果用户单击某个按钮,则将该临时图像插入到数据库中jQuery $.post()到另一个php脚本,所以一个php获取文件,另一个将它插入你的db

This link will help you sending files with AJAX or jQuery

答案 2 :(得分:0)

您只能在选择时将文件保存到数据库中。上传后,该文件将保存在临时目录中。从那里你必须告诉php将它移动到一个真实的目录using move_uploaded_file()

答案 3 :(得分:0)

你可以尝试这个..首先你可以上传一个文件然后在html中取两个div 一个用于上传按钮,另一个用于您显示的图片...您可以提供背景颜色以便更清晰和理解..

    <?php

$submit=$_POST['sub'];
if(isset($submit))
{
$name=$_FILES['img']['name'];
$type=$_FILES['img']['type'];

$size=($_FILES['img']['size'])/1024;

$ext=end(explode('.',$name));
if (($ext == "gif")
|| ($ext == "jpeg")
|| ($ext == "jpg")
|| ($ext =="png")
&& ($size > 30))
{


##############################File Renaming ###################################################

$newname=uniqid();
//$ext=end(explode('.',$name));
$fullname=$newname.".".$ext;
$target="pics/";
$fulltarget=$target.$fullname;
if(move_uploaded_file($_FILES['img']['tmp_name'],$fulltarget))
{
    echo "Success";



}
else
{
    echo "Failed";
}
##############################File Renaming end ###################################################
}

else{
    echo "not successful";
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="abhi.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<div id="a1">
<form name="frm" method="post" enctype="multipart/form-data">
<input type="file" name="img" /><br />

<input type="submit" name="sub" value="Store" />
</form>
</div>
<div id="a2">
<?php echo "<img src='$fulltarget'>";?>
</div>
</body>
</html>