2016-05-20 21 views
0

ユーザーは画像をアップロードでき、contenteditable divに挿入されます。コンテンツ編集可能なdivに複数の画像を表示

ユーザーが1つの画像をアップロードすると、ページがリフレッシュされ、画像がコンテンツ編集可能なdivに表示されます。次に、別のイメージを追加すると、最初のイメージが自動的に削除されます。

他の画像がアップロードされたときに画像を削除せずに、すべての画像を表示するにはどうすればよいですか?

<?php 
if(isset($_POST['upload'])) 
{ 
$ImageName = $_FILES['photo']['name']; 
$fileElementName = 'photo'; 
$path = '../photos/'; 
$location = $path . $_FILES['photo']['name']; 
move_uploaded_file($_FILES['photo']['tmp_name'], $location); 
header('Location: newpost.php?img='.$location); 
} 
?> 

<form method="post" enctype="multipart/form-data"> 
<input type="file" name="photo" onchange="document.getElementById('upload').click();" id="file" class="inputfile" /> 
<input type="submit" style="display: none;" name="upload" id="upload"> 
<div id="post" contenteditable> 
if(!empty($_GET['img'])) { 
echo'<img src="'.$_GET['img'].'" class="image" />'; 
} 
?> 
</div> 
</form> 
+0

あなたの 'action =" .... php "'はどこですか?私はあなたの形でそれを見ることができません。 –

+0

@AndreChenier PHPスクリプトが同じページにあるので、私のフォームにアクションが必要だとは思わなかった。 –

+0

そうです。そして、私はまた、ユーザーがアップロードしたイメージが表示されるはずのdiv内に$ _SESSION配列を使用します。 PHPはステートレスなので、過去を思い出すためにセッションやMySQLトランザクションが必要です。 –

答えて

0

最も簡単な解決策は、セッション変数を使用することです。

<?php 
session_start(); 
if(isset($_POST['upload'])) 
{ 
$ImageName = $_FILES['photo']['name']; 
$fileElementName = 'photo'; 
$path = '../photos/'; 
$location = $path . $_FILES['photo']['name']; 
move_uploaded_file($_FILES['photo']['tmp_name'], $location); 

$imageArray = array(); 
if (isset($_SESSION['images'])){ 
$imageArray = $_SESSION['images']; 
} 
array_push($imageArray,$location); 
header('Location: newpost.php?img='.$location); 
} 
?> 

<form method="post" enctype="multipart/form-data"> 
<input type="file" name="photo" onchange="document.getElementById('upload').click();" id="file" class="inputfile" /> 
<input type="submit" style="display: none;" name="upload" id="upload"> 
<div id="post" contenteditable> 

if(isset($_SESSION['images'])) { 
foreach($_SESSION['images'] as $image){ 
echo'<img src="'.$image .'" class="image" />'; 
} 
} 


?> 
</div> 
</form> 
+0

お返事ありがとうございます。アップロードされた画像は、contenteditable divに表示されなくなりました。 –

+0

セッションに保存するのはそうだ。ページが更新されるときにイメージが保存されるので、セッションにはイメージの場所の配列があり、すべてを読み込むことができます。あなたが望むものではありませんか? –

+0

イメージはロードされていません_(私はそれらのように見えません)_ –

関連する問題