Пользователи могут загрузить изображение, и оно будет вставлено в contenteditable div.
Когда пользователь загружает одно изображение, страница обновляется, и изображение отображается в contenteditable 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>
Самое простое решение — использовать переменную сеанса.
<?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>
Других решений пока нет …