I have a problem appending the imageNameArray where it is suppose to display file names which have been uploaded.
The problem is that lets say I previously uploaded 3 files (cat.png, dog.png and pig.png), when I refresh page and upload another file (panda.png), then when I upload the file, it should display ‘panda.png’. But instead it is just appending the names of the previously uploaded files (cat.png, dog.png and pig.png) and it does not append panda.png.
If I refresh page again and upload another file (tiger.png), then when I upload the file, it should display ‘tiger.png’. But instead it is just appending the names of the previously uploaded files (cat.png, dog.png and pig.png and panda.png) and it does not append tiger.png.
If I upload another file (not refreshing page) such as monkey.png, then again it appends cat.png, dog.png and pig.png and panda.png. No monkey.png.
why is it messing up like this? All I want is that when a file is uploaded, it’s name is appended but it doesn’t want to do this 🙁
UPDATE:
Below is the javascript code where the appending occurs:
<?php
session_start();
$idx = count($_SESSION ['fileImage'] - 1);
$output = isset($_SESSION ['fileImage'][$idx]) ? $_SESSION ['fileImage'][$idx]['name'] : "";
?>
function stopImageUpload(success){
var imageNameArray = new Array();
imageNameArray = <?php echo $output ?>;
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
for(var i=0;i<imageNameArray.length;i++)
{
$('.listImage').append(imageNameArray[i]+ '<br/>');
}
}
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
}
return true;
}
Below is the php script where it uploads a file which is on another page from the javascript function above:
<?php
session_start();
$result = 0;
$errors = array ();
$dirImage = "ImageFiles/";
if (isset ( $_FILES ['fileImage'] ) && $_FILES ["fileImage"] ["error"] == UPLOAD_ERR_OK) {
$fileName = $_FILES ['fileImage'] ['name'];
$fileExt = pathinfo ( $fileName, PATHINFO_EXTENSION );
$fileExt = strtolower ( $fileExt );
$fileDst = $dirImage . DIRECTORY_SEPARATOR . $fileName;
if (count ( $errors ) == 0) {
if (move_uploaded_file ( $fileTemp, $fileDst )) {
$result = 1;
}
}
}
$_SESSION ['fileImage'][] = array('name' => $_FILES ['fileImage']['name']);
?>
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result;?>);</script>
you should read up about $_SESSION. It needs to be “started” on every page that needs access to the $_SESSION array. you need to add
to the page that is echo’ing out for the javascript too
Ok, then we need to change your appending implementation.
and then to retrieve the last one,
(I would put this somewhere after session_start())