I have created a table as such in file1.php:
<table id="myTable" style="width:100%;">
<tr>
<td><?php echo $string1; ?></td>
<td><?php echo $string2; ?></td>
<td><?php echo $string3; ?></td>
<td><?php echo $string4; ?></td>
<td><?php echo $string5; ?></td>
<tr>
<?php
if(file_exists($filesDir))
{
foreach (new DirectoryIterator($filesDir) as $file)
{
if((htmlentities($file) !== ".") && (htmlentities($file) !== ".."))
{
/* get the file name, creation date and size */
$filename = htmlentities($file);
$filecdate = date("d-m-Y H:i:s", filectime($filesDir.$file));
$filesize = filesize($filesDir.$file) /(pow(1024, 2));
?>
<tr>
<!-- print filename -->
<td><?php echo $filename; ?></td>
<!-- print file creation date -->
<td><?php echo $filecdate; ?></td>
<!-- print filesize -->
<td><?php echo number_format($filesize, 2, '.', '\'')." MB"; ?></td>
<!-- print button #1 -->
<td> <?php echo "<input type=\"button\" value=\"D\" onClick=\"downloadFile($filename)\"/>"; ?> </td>
<!-- print button #2 -->
<td> <?php echo "<input type=\"button\" value=\"X\" onClick=\"eraseFile($filename)\"/>"; ?> </td>
</tr>
<?php
}
}
}
?>
</table>
And I have written a Javascript function in another js file:
function downloadFile(filename)
{
$("#activity").html("<img src=\"imagenes/indicator.gif\" style=\"left: 590px;top: 74px;margin: auto;position: absolute;width: 32px;height: 32px;\" />");
window.location.href = "file3.php?filename=" + filename;
}
Finally, in a PHP file called file3.php I use the filename value obtained with the downloadFile function, as so:
if(isset($_GET["filename"]))
{
$filename = $_GET["filename"];
if(file_exists($filesFolder.$filename))
{
set_time_limit(0);
ob_start();
//header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
//header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.basename($filename));
//header('Content-Transfer-Encoding: binary');
header('Expires: 5');
header('Cache-Control: must-revalidate');
//header('Pragma: public');
header('Content-Length: ' . filesize($filesFolder.$filename));
readfile($filesFolder.$filename);
ob_end_flush();
exit;
}
But when I click the button from file1.php the Javascript function is not executed. Could you please help to understand where I am wrong?