Aller au contenu

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

Problèmes script téléchargement


Messages recommandés

Chucky2401 Membre 54 messages
Forumeur en herbe‚ 31ans
Posté(e)

Bonsoir à tous !

J'ai un soucis avec un script pour télécharger les fichiers mis à disposition pour les membres.

Tout d'abord voici la page qui liste les fichiers :

documents.php

<?php
/*
 documents.php

 Copyright 2011 Les 3 Mousquetons <les3mousquetonsboulazacois@gmail.com>

 Version 1.0 - C2401

 This program is free software; you can not redistribute it and/or modify
 it under the terms of the Creative Commons BY-NC-ND. */

/*
* Début du code source
*/

$debut = microtime(true);
session_start();
header('Content-type: text/html; charset=utf-8');
include('includes/config.php');

/* * ******Actualisation de la session...********* */

include('includes/fonctions.php');
connexionbdd();
$etat = en_ligne();
actualiser_session();

/* * ******Fin actualisation de session...********* */

/* * ******En-tête et titre de page******** */

$titre = 'Liste des Documents';

include('includes/haut.php'); //contient le doctype, et début de head.

/* * ********Fin entête et titre********** */
?>
<link rel="stylesheet" href="<?php echo ROOTPATH; ?>/styles/documents.css" type="text/css" media="screen" />
</head>

<?php include('includes/menu.php'); ?>

<div id="map" style="text-align: left;">
<a href="index.php">Accueil</a> => <a href="documents.php">Liste des documents à télécharger</a>
</div>

<div id="corp">
<?php
connexionbdd();
$retour = mysql_query('SELECT YEAR(date) AS annee FROM upload ORDER BY date LIMIT 0,1');
$donnees = mysql_fetch_array($retour);
$firstYear = $donnees['annee'];
$retour = mysql_query('SELECT YEAR(date) AS annee FROM upload ORDER BY date DESC LIMIT 0,1');
$donnees = mysql_fetch_array($retour);
$lastYear = $donnees['annee'];
echo '<div class="date">';
for($i=$firstYear;$i<=$lastYear;$i++){
if($i == date('Y', time()))
	echo ' <strong class="now"><a href="documents.php?annee='.$i.'">'.$i.'</a></strong>';
else
	echo ' <a href="documents.php?annee='.$i.'">'.$i.'</a>';
}
echo '</div>';
?>
<h1>Liste des documents disponibles au téléchargement</h1>
<?php
$liste_mois=array('','Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre',
	'Novembre','Décembre');
$mois=false;
$annee=false;
if(isset($_GET['annee'])){
	$anneeDebut = intval(strip_tags(trim($_GET['annee']))).'-01-01';
	$anneeFin = intval(strip_tags(trim($_GET['annee']))).'-12-31';
}
else{
	$anneeDebut = date('Y').'-01-01';
	$anneeFin = date('Y').'-12-31';
}
$reponse = mysql_query('SELECT id, name, size, filename, description, MONTH(date) AS mois, YEAR(date) AS annee FROM upload WHERE date>=\''.$anneeDebut.'\' AND date<=\''.$anneeFin.'\' ORDER BY date DESC');
while($donnees=mysql_fetch_array($reponse)){
	if($annee!=$donnees['annee']){
	$annee = $donnees['annee'];
	if($mois!=$donnees['mois']){
		$mois=$donnees['mois'];
	}
	echo '<h2>'.$liste_mois[$donnees['mois']].' '.$donnees['annee'].'</h2>';
	}
	else{
	if($mois!=$donnees['mois']){
		$mois=$donnees['mois'];
		echo '<h2>'.$liste_mois[$donnees['mois']].' '.$donnees['annee'].'</h2>';
	}
	}
	$size_octet = $donnees['size'];
	$size_mega = $size_octet/1024/1024;

	$name = $donnees['filename'];
	$name = preg_replace('#([a-z0-9._-]+)\.pdf#isU', '$1.cpt' ,$name);
	$name = 'upload/cpt/'.$name;
	if(!file_exists($name)){
	$cpt = 0;
	}
	else{
	$compteur = fopen($name, 'r');
	$cpt = fgets($compteur);
	}
	echo '<h3><a href="telecharger.php?id='.$donnees['id'].'">'.$donnees['name'].' ('.round($size_mega, 3).'Mo - '.$size_octet.'octets)</a></h3>
	<span class="description">'.$donnees['description'].' - <em>Télécharger : '.$cpt.'</em></span>';
}
	?>
</div>

<?php
include('includes/bas.php');
?>

telecharger.php :

<?php
/*
 telecharger.php

 Copyright 2011 Les 3 Mousquetons <les3mousquetonsboulazacois@gmail.com>

 Version 1.0 - C2401

 This program is free software; you can not redistribute it and/or modify
 it under the terms of the Creative Commons BY-NC-ND. */

/*
* Début du code source
*/

session_start();

include('includes/config.php');
include('includes/fonctions.php');

$id = intval(strip_tags(trim($_GET['id'])));
connexionbdd();
$reponse = mysql_query('SELECT * FROM upload WHERE id="'.$id.'"') or die(mysql_error());
$donnees = mysql_fetch_array($reponse);

/*/echo '<pre>';

print_r($donnees);

echo '</pre>';/**/

header('Content-Type: '.$donnees['type'].'; charset=utf-8'); //Transfert en binaire (fichier)
header('Content-Disposition: attachment; filename="'.$donnees['name'].'"'); //Nom du fichier
header('Content-Length: '.$donnees['size'].''); //Taille du fichier

$files = ROOTPATH.'/upload/'.$donnees['filename'];

/*/echo $files.'<br />';
echo $donnees['name'].'<br />';
echo $donnees['size'].'<br />';
echo $donnees['description'].'<br />';
echo $donnees['filename'].'<br />';
echo $donnees['type'];/**/

/*
* Partie sur le compteur de téléchargement
*/

//ouverture du fichier
$name = $donnees['filename'];
$name = preg_replace('#([a-z0-9._-]+)\.pdf#isU', '$1.cpt' ,$name);
$name = 'upload/cpt/'.$name;
if(!file_exists($name)){
$compteur = fopen($name, 'a+');
fputs($compteur, '1');
}
else{
$compteur = fopen($name, 'r+');
$actuel = fgets($compteur);
$new = $actuel + 1;
fseek($compteur, 0);
fputs($compteur, $new);
}

//fermeture du fichier
fclose($compteur);

readfile($files);
?>

Donc le soucis est quand on clique pour télécharger un fichier on a un fichier de 0 octets !

Voici un screeshot :

535405telecharger.png

Ma BDD contient :

- un id

- le nom du fichier réel avec extension

- la taille en octets

- la description

- la date

- le nom du fichier sur le serveur avec extension

- le type mime

Je vous remercie par avance !

Cordialement

Partager ce message


Lien à poster
Partager sur d’autres sites
Annonces
Maintenant
Chucky2401 Membre 54 messages
Forumeur en herbe‚ 31ans
Posté(e)

Toujours pas d'aide ?

Le président du club me demande de finir le site pour Mars...

Merci d'avance pour vos réponses !

Cordialement !

Partager ce message


Lien à poster
Partager sur d’autres sites

  • Upload d'images

    • Uploadfr est un service proposé par ForumFr, simple et gratuit, vous permettant d'héberger vos images. Si vous rencontrez le moindre soucis sur le forum, pour vos images, vous pouvez l'utiliser.
  • Nous vous invitons à découvrir les centaines de milliers de sujets existants sur LE Forum - n'hésitez pas à y participer ! L'inscription, gratuite, permet également de diminuer le nombre d'affichage de publicités. Pour cela, inscrivez-vous, ou connectez-vous.

    Bienvenue sur Forum Fr !

  • FFr Mag' 2.0

×