Download fisier prin URL
Scris: Mar Apr 17, 2018
Salut, lucrez la un script de listare a fisierelor si directoarelor si am anumite optiuni ( imgur.com/a/PM1X9 ), iau totul pe rand si momentan am facut doar stergerea, cum as putea face sa downloadez un fisier prin url? P.s script ul este la inceput
COD:
COD:
Cod: Selectaţi tot
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script defer src="https://use.fontawesome.com/releases/v5.0.10/js/all.js" integrity="sha384-slN8GvtUJGnv6ca26v8EzVaR9DC58QEwsIk9q1QXdCU8Yu8ck/tL/5szYlBbqmS+" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>
<body class="container">
<?php
// echo "http://" . $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] ;
// echo dirname(__FILE__).'<br><br>';
//Verificam daca link-ul este corect
if(isset($_GET['actiune']) && !empty($_GET['actiune'])){
//Preluam "actiune" si "director"
$actiune = $_GET['actiune'];
$director = (isset($_GET['director']) ? $_GET['director'] : ".");
//Daca parametrul 'director' este gol afisam eroare
if(empty($director))
die('Nu exista un director');
if(isset($_GET["file"])){
// COD PENTRU DOWNLOAD
}
//Daca actiune == listare ii atribuim lui $dir locatia actuala
if($actiune == 'listare'){
?>
<table class="table table-hover">
<tr>
<th>
<a href="http://
<?php
echo $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($director == '.'){
echo '&director=';
echo urlencode('./../');
} else
echo urlencode('/..');
?>"><i class="fa fa-arrow-left"></i> Inapoi</a>
</th>
<th>
*
</th>
</tr>
<?php
//Verificam daca fisierul este un director
if(is_dir($director)){
//Preluam fisierele fara "." si ".."
$fisiere = array_diff(scandir($director), array('.', ".."));
//Aranjam directoarele primele
usort($fisiere, function($a, $b) {
if(is_dir($a) == is_dir($b))
return strnatcasecmp($a, $b);
else
return is_dir($a) ? -1 : 1;
});
//Afisam fisierele/directoarele
$i=1;
$j=0;
foreach($fisiere as $denumire){
//Preluam locatia fisierului/folderului
$locatie = getcwd().$director.'\\'.$denumire;
?>
<tr>
<th>
<?php
if(is_dir($locatie))
echo '<i class="fa fa-folder fa-fw"></i> <a href="?actiune=listare&director='. urlencode("{$director}/{$denumire}") . '">'. $denumire .'</a>';
else if(is_file($locatie))
echo '<i class="fa fa-code fa-fw"></i> '.$denumire;
else
echo 'eroare';
?>
</th>
<?php if(is_file($locatie)){ ?>
<td>
<div class="row">
<button class="btn btn-info"><i class="fa fa-eye"></i></button>
 
<button class="btn btn-primary"><i class="fa fa-edit"></i></button>
 
<a href="<?php echo "http://" . $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'&file=' . urlencode($denumire) . '"'; ?>"><button class="btn btn-success"><i class="fa fa-download"></i></button></a>
 
<button class="btn btn-danger" data-toggle="modal" data-target="#sterge<?php echo $i; ?>"><i class="fa fa-trash"></i></button>
</div>
<div class="modal fade" id="sterge<?php echo $i; ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Stergere fisier</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
Sunteti sigur ca vreti sa stergeti fisierul <b><i><?php echo $denumire; ?></i></b> ?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Inchide</button>
<button type="button" class="btn btn-danger">Sterge</button>
</div>
</div>
</div>
</div>
</td>
<?php $i++; } else if(is_dir($locatie)){?>
<td>
<div class="row">
<button class="btn btn-primary"><i class="fa fa-file-archive"></i></button>
 
<button class="btn btn-danger" data-toggle="modal" data-target="#sterge<?php echo $j; ?>"><i class="fa fa-trash"></i></button>
<div class="modal fade" id="sterge<?php echo $j; ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Stergere folder</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
Sunteti sigur ca vreti sa stergeti directorul <b><i><?php echo $denumire; ?></i></b> ?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Inchide</button>
<button type="button" class="btn btn-danger">Sterge</button>
</div>
</div>
</div>
</div>
</div>
</td>
<?php $j--; } else echo '<td>err act</td>';?>
</tr>
<?php
}
}
?>
</table>
<?php
}
//Stergere
if($_GET['actiune'] == 'sterge' && isset($_GET['nume'])){
$act = getcwd().$director.'\\'.$_GET['nume'];
unlink($act);
}
} else {
echo 'Nu se afișează nimic';
}
?>
</body>
</html>