Aller au contenu

Script Php de téléchargement


leditvalentin

Sujets conseillés

Bonjour à tous,

J'ai installé un CMS de partage de document (www.webshare.fr) sur une serveur mutualisé OVH offre pro.

Ce CMS est très performant mais j'ai un souci lors du téléchargement de fichiers de plus de 90Mo environ.

En effet, le téléchargement sarrête de manière aléatoire au bout d'un certain moment.

La durée avant le bug n'est jamais la même et la taille du téléchargement varie également.

Dés fois il télécharge 6Mo, 65MO,... sur la totalité du fichier avant de planter.

Je ne suis vraiment pas doué en PHP, quelqu'un pourrait il regarder le script pour voir si il y a une erreur sur celui-ci ?

Merci d'avance pour votre aide.

<?php
/************************************************************************/
/* WEBSHARE */
/************************************************************************/
//
// Copyright (c) 2009 by Virginie Vivancos
// http://www.webshare.fr
//
// This program is free software. You can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License.
//
// =======================================================================
// Fonction : Enregistre le fichier sélectionné
// Nom : enregistrer.php
// Version : 0.8.2
// Date : 24/04/09
// =======================================================================
session_start();
include_once "auth.php";
include_once "fonctions.php";
$l_mysql = new class_mysql();
$l_mysql->connect();

include_once "zip.lib.php";
$nomSrv= $_SESSION["ws"]["serveurActif"];
$chemin= stripslashes($_SESSION["ws"]["cheminActif"]."/".$_SESSION["ws"]["dossierActif"]."/");
$all= intval($_REQUEST["all"]);


if (!empty($_REQUEST["ok"])) {

$zipfile = new zipfile();
$zipfilename = basename($_SESSION["ws"]["$nomSrv"]["repServeur"]."/".$_SESSION["ws"]["dossierActif"]."_archive").'.zip';
$zip_subfolder = 'Webshare_Fichiers';

function saveScandir($ad_dir,$path) {
global $all,$zipfile;
if ($handle = opendir($ad_dir)) {

while (false !== ($file = readdir($handle))) {
if (!is_dir("$ad_dir/$file")) {

if (preg_match($_SESSION["ws"]["varsUser"], $file)==0) {
$f_tmp = _AT_fopen($ad_dir . '/' . $file, 'r');
if($f_tmp){
$dump_buffer=fread( $f_tmp, filesize($ad_dir . '/' . $file));
$zipfile -> addFile($dump_buffer, convCar(utf8_encode($path . (!empty($path)?'/':'') . $file)));
fclose($f_tmp);
}
}

} else {
if ((preg_match($_SESSION["ws"]["varsUser"], $file)==0)&&($all==1)) {
saveScandir($ad_dir . '/' . $file, $path . (!empty($path)?'/':'') . $file);
}
}
}

}
}

saveScandir(blindeChemin($chemin),"");

$dump_buffer = $zipfile -> file();
header('Pragma: public');
header('Content-type: application/zip;');
header('Content-length: ' . strlen($dump_buffer));
header('Content-Disposition: attachment; filename="'.str_replace(" ","",urldecode($zipfilename)).'"');
flush();
$tabLog= array("14","1",$_SESSION["ws"]["dia"]["savingDirContent"].$_SESSION["ws"]["dossierActif"],$_SESSION["ws"]["nomUser"],$_SESSION["ws"]["dossierActif"],$zipfilename,"");
$l_mysql->logAction($tabLog);
$l_mysql->disconnect();
echo $dump_buffer;
}


?>

P.S : le serveur est sur php 5, je me demande si le bug ne viendrait pas de la limite dexécution des scripts....

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...