如何在页面上显示用户上传到网站的图像?

时间:2014-01-26 19:47:29

标签: javascript php jquery image show

所以我创建了一个php文件,允许用户将图像上传到目录(/ uploads),现在我希望允许他们在页面上看到这些图像,我听说你可以使用JavaScript吗?如果是这样,我该怎么做?

这是我到目前为止的代码;

HTML(基本上传表单);

<html>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

PHP Upload_file;

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$allowedTypes = array("image/gif",'..','..',"image/png");

$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((in_array($_FILES["file"]["type"], $allowedTypes))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{

if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],  "upload/" . $_FILES["file"]["name"]);
header('Location: index.html');
   }
 }
}
else
   {
echo "Invalid file";
   }
?>

2 个答案:

答案 0 :(得分:0)

您可以替换header('Location: index.html');并将其替换为:echo '<img src="upload/' . $_FILES["file"]["name"] . '" />';,它将在php上传文件中显示图片(承认它是一个应该显示内容的文件而不仅仅是后端文件因为它似乎是你希望用户被重定向到index.html)。

最好的方法和最方便的方法是将图片路径或名称("upload/" . $_FILES["file"]["name"])保存在mysql表中,以便能够随意检索它。 您可能希望了解一下tehre:http://fr2.php.net/manual/fr/book.pdo.php

答案 1 :(得分:0)

这取决于您希望用户查看这些图像的方式。我假设您的意思是任何人都可以查看上传的任何图像(不是基于每个用户)。在不修改现有代码的情况下,您可以通过上传文件夹获取PHP中所有图像文件的列表。例如,您可以使用包含以下内容的文件showimage.php

<?php
$imgArray = scandir("upload");
foreach($imgArray as $img){
echo "<img src='" . $img . "' />";
}
?>

scandir函数列出了所有文件http://www.php.net/manual/en/function.scandir.php

此外,我假设您的上传文件夹仅包含图片。如果你有其他文件,你可以使用glob函数(每种类型一次)。 http://us3.php.net/glob

编辑:另外,正如另一张海报所说,如果你想对这些图片做任何其他事情,最好存储他们的路径(与上传它们的用户),这样你就可以更多地检索它直接的方式。