2014-01-26 156 views
0

所以我創建了一個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"; 
    } 
?> 

回答

0

您可以替換header('Location: index.html');並替換:echo '<img src="upload/' . $_FILES["file"]["name"] . '" />';這將顯示在PHP上傳文件中的圖片(承認它這是爲了顯示內容,而不僅僅是一個後端文件的文件,因爲它似乎就像你想讓用戶被重定向到index.html一樣)。

要做到這一點的最好方法和最方便的方法是保存圖片路徑,或在mysql表中名稱("upload/" . $_FILES["file"]["name"])以便能夠按照您的要求進行檢索。 您可能想看看tehre:http://fr2.php.net/manual/fr/book.pdo.php

+0

我基本上想要將用戶重定向到一個頁面,在該頁面中將顯示已上傳的所有圖像,從而允許他們查看自己上傳的圖像以及其他圖像。 – Cwtch22

+0

要做到這一點,最有效的方法是將所有這些文件名保存到一個sql表中,並查詢您希望它們顯示在頁面上的文件名。我顯然不能爲你編寫代碼,但是你可以做一些關於sql表和php的研究,如果你瞭解了基礎知識,你就可以解決這個問題,或者至少回到這裏並給我們一些代碼。 – bastienbot

+0

如果你使用[** sessions **](http://www.php.net/manual/en/features.sessions.php)@ Cwtch22 –

0

這取決於您希望用戶如何看到這些圖像。我假設你的意思是任何人都可以查看上傳的任何圖片(而不是以每個用戶爲基礎)。您可以在不修改現有代碼的情況下執行此操作的一種方法是從uploads文件夾中獲取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

編輯另外,正如另一張海報所說,如果你想對這些圖像做任何其他的事情,最好將它們的路徑存儲起來(與上傳它們的用戶一起),以便你可以在更直接的方式。

+0

這會讓你的生活變得更容易感謝這段代碼,所有圖像在哪裏出現?在什麼頁面上? – Cwtch22

+0

這可能在一個新的獨立頁面上,你可以改變你的標題重定向到上傳後到這個新頁面,或者你可以把這個片段放在我認爲的任何地方。 – kevinAlbs

+0

那麼,我會如何讓這些圖像出現在我想要的頁面上呢?謝謝 – Cwtch22