Vérifier si utilisateur télécharge + UPLOAD avec progressbar

MEGAFILES
Invité n'ayant pas de compte PHPfrance

10 mars 2012, 13:39

Bonjour à tous !

J'ai une question, j'utilise form method='post' action='upload.php'

Mais j'aimerai que lorsque je j'Upload un fichier, qu'il me redirige vers upload.php avec un progressbar

Mais le plus important, c'est que je ne sais pas comment faire pour savoir si l'utilisateur télécharge pour l'empêcher de télécharger une seconde fois

Pouvez vous m'aider ?

Voici le code que j'utilise
<?php 

$result = dbquery("SELECT * FROM files WHERE repertory = '" . filter($_GET['d']) . "'");

if (mysql_num_rows($result) >= 1)
{
	while ($d = mysql_fetch_assoc($result))
	{
		$file_name = $d['file_name'];
		$description = $d['description'];
		$repertory = $d['repertory'];
		$extension = ClassUpload::GetExtension($file_name);
	}
	
	define('FILE_EXIST', true);
}


else 
{ 
	echo "<div id='error'>Le fichier n'est pr&eacute;sentement pas disponible</div>"; 
	define('FILE_EXIST', false);
}


if (FILE_EXIST)
{
	switch($extension) 
	{
		case ".gz": case ".tgz": $type = "application/x-gzip"; break;
		case ".zip": $type = "application/zip"; break;
		case ".pdf": $type = "application/pdf"; break;
		case ".png": $type = "image/png"; break;
		case ".gif": $type = "image/gif"; break;
		case ".jpg": $type = "image/jpeg"; break;
		case ".txt": $type = "text/plain"; break;
		case ".htm": case ".html": $type = "text/html"; break;
		default: $type = "application/octet-stream"; break;
	}
	
	if (isset($_POST['premium']) && $users->GetUserVar(USER_ID, 'rank') >= 2 || isset($_POST['submit']))
	{
		if (file_exists("files/" . $repertory))
		{
			header('Content-Disposition: attachment; filename="' . $file_name . '"');			
			header("Content-Type: application/force-download"); 
			header("Content-Transfer-Encoding: " . $type . "\n"); // Surtout ne pas enlever le \n
			header("Content-Length: ". filesize("files/" . $repertory)); 
			header("Pragma: no-cache"); 
			header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
			header("Expires: 0"); 
			flush(); 
			readfile("files/" . $repertory); 
			exit();
		}
	}

	else if (isset($_POST['premium']) && !$users->GetUserVar(USER_ID, 'rank') >= 2) 
	{ 
		header('Location: premium.php'); 
		exit; 
	}

?>
<form method="post">
<div class="left">
<b>Nom du fichier&nbsp;:</b>&nbsp;<?php echo $file_name . "<br />"; ?>
<b>Description&nbsp;:</b>&nbsp;<?php echo $description . "<br />"; ?>
<b>Taille du Fichier&nbsp;:</b>&nbsp;<?php echo ClassUpload::Convert(filesize("files/" . $repertory)); ?>
</div>

<div class="right">
<b>Lien de t&eacute;l&eacute;chargement:</b>&nbsp;
<?php echo "<a href='http://www.visualdevelopment.fr/?d=" . $repertory . "'>http://www.visualdevelopment.fr/?d=" . $repertory . "</a>"; ?>
</div>
<div class="clear"></div>
<div class="right">
<div class="contour radius"><input class="radius orange" type='submit' name="premium" value='T&eacute;l&eacute;chargement Premium' /></div>
<div class="contour radius"><input class="radius black" type='submit' name="submit" value='T&eacute;l&eacute;chargement r&eacute;gulier' /></div>
</div>
<? } ?>
<div class="clear"></div>

Mammouth du PHP | 2278 Messages

11 mars 2012, 10:38

echo "<div id='error'>Actuellement, ce fichier est indisponible</div>";
echo "<div id='error'>Actuellement ce fichier n'est pas disponible</div>";
serait plus mignon que
echo "<div id='error'>Le fichier n'est pr&eacute;sentement pas disponible</div>";
présentement c'est du français de gendarmes de Courteline ou de noirs ou de canadiens de bande dessinée.
Plus sérieusement, le téléchargeur peut-il être identifié par un moyen quelconque (adresse IP, identifiant, adresse électronique;, ou autre chose... voir du côté de $_SERVER, faire un print_r($_SERVER)) : ce sera nom_util ci-dessous
http://fr2.php.net/manual/fr/reserved.v ... server.php
Et loger ce renseignement dans une bdd du genre
table fichiers
ident_fic|nom_de_fichier|chemin_du_fichier
1|zip.exe|....
2|bidule.doc
table utilisateurs
ident_util|nom_util
1|toto
2|127.33.21.36
table chargements
ident_fic|ident_util|
1|1 zip.exe a été chargé par toto
1|2 zip.exe a été chargé par 127.33.21.36
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD