Bonjour à toutes et à tous !

Je développe actuellement une plate-forme de téléchargement à destination d'un client (l'entreprise dans laquelle je travaille). Dans l'interface d'administration, le but est de pouvoir envoyer des fichiers via un input de type "file" dans un dossier pour pouvoir les afficher côté utilisateur et ainsi les télécharger.

Or, jusqu'à présent, impossible d'envoyer des fichiers de plus de 3 Mo alors que le débit maximum donné avec mon hébergement est de 64 Mo. Aussi je requiers votre aide pour m'aider à voir là ou mon code cafouillerait (je tiens à prévenir que je reste un débutant dans le domaine)

L'action se déroule dans trois fichiers : une page admin.php dans laquelle se trouve le formulaire d'envoi des fichiers ainsi qu'une page Ajaxfichiers.php dans laquelle l'upload est effectuée :

Code admin.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
 
 
<?php 
	 include("Ajaxfichier.php"); 
?>
 
<img alt="Nature" title="Nature" src="css/img/NatureBer.jpg" class="adminimg"/>
<div class="formulaire">
	<form method="POST" action="" enctype="multipart/form-data" id="formFichier">
	<!-- Pour ajouter un fichier -->
		<div class="fichier">
			<label for="fichier">Ajouter un fichier (100Mo Max)</label></br>
				<input type="hidden" name="MAX_FILE_SIZE" value="104857600"/>
				<input type="text" class="chemin" id="chemin"/>
				<input type="file" name="fichier[]" id="fichier" multiple="multiple"/>
		</div>
 
		</br>
		<!-- Bouton d'envoi -->	
		<input class="valid" type="submit" name="val" value="Envoyer" />
	</form>
	<div class="messageFichier"> </div>
	<div class="affiche"></div>
	<div class="download"></div>
 
 
 
<?php 
$dir= "./fichiers/";
 
/******** Fonction pour supprimer des fichiers *********/
function deletefile($file) {
	if ($file != "") { 
		unlink($file); // On efface.
	}
}
	// Si on demande à supprimer, alors on efface le fichier
       if (!empty($_GET['action']) and $_GET['action'] == "suppr") {
	    //var_dump($_GET);
	    deletefile($dir.$_GET['p']);
	    header('Location: admin');
}	
 
/******** Fonction pour lire et afficher les fichiers uploadés *********/
$dossier = "./fichiers/";
$repertoire = opendir($dossier); // On définit le répertoire dans lequel on souhaite travailler.
 
/******** Fonction pour pagination des fichiers *********/
function pagination() {
 
	$filesCount = glob("./fichiers/*.*");
	$nbfiles = count($filesCount);
	$pagination = "";
	//echo $nbfiles;
	if ($nbfiles > 5) {
		$nbperpage = 5;
 
		// On définit le nombre de page à créer
		$nbpages=ceil($nbfiles/$nbperpage);
 
		// On fait une boucle pour afficher la pagination
		if($_GET["p"] > 1) {
			$pagination.="<a class='Lienpagination' href='admin-". ($_GET["p"]-1) ."'><</a> ";
		}
		for ($i =1; $i <= $nbpages; $i++) {
			$pagination .="<a class='Lienpagination' href='admin-". $i ."'>". $i ."</a> ";
		}
		if($_GET["p"]<$nbpages) {
			$pagination.="<a class='Lienpagination' href='admin-". ($_GET["p"]+1) ."'>></a> ";
		}
	}	
	return $pagination;
}
	// Vérification de l'existance du dossier
	if (is_dir($dir)) {
		// Vérification du contenu
		if ($dossier = opendir($dir)) {
 
			// Affichage de l'entête du tableau
			$begintab = "
				<div class='tabetform'>
					<table>
						<thead>
							<tr>
								<th class='hand'>Nom du fichier</th>
								<th class='hand'>Taille</th>
								<th class='hand'>Date d'ajout</th>
								<th class='hand'>Action</th>
							</tr>
						</thead>
						<tbody>";
 
			// Boucle tant qu'on a pas fait le tour des fichiers
			$numFichier = 1;
			while (($file=readdir($dossier)) !=false) {
 
				// Afficher le nom et le type si ce n'est pas un élément du système
				if ($file != '.' && $file != ".." && preg_match('#\.(pdf)$#i', $file)) {
												//   |_ Changer en pdf pour la plate forme					
 
					// SI le fichier fait parti de l'interval de la pagination alors on l'affiche
 
					// SI le paramètre de page P n'est renseigné alors on le passe à 1
					if (empty($_GET["p"])) {
						$_GET["p"] = 1;
					}
 
					if (($numFichier >= (($_GET["p"] -1) * 5)) && ($numFichier <= ($_GET["p"] * 5))) {
 
					/******** Fonction pour afficher la taille des fichiers *********/
							// On affiche dans la variable les informations relatives au fichier
							$taille=stat($dir.$file);
							// On convertit et arrondit le résultat en Ko ou Mo
							$size=$taille["size"];
 
							if ($size >= 1048576) {
								$size=(($taille["size"] / 1048576 * 100) / 100);
								$final_size=round($size,2)." Mo";
							} else {
								$size=(($taille["size"] / 1024 * 100) / 100);
								$final_size=round($size,2)." Ko";
							}
 
					/******** Fonction pour afficher la date d'ajout des fichiers *********/
					$ladate = stat($dir.$file);												
					$datefinal=date('d/m/Y', $ladate['atime']);
 
 
					// Affiche des fichiers si fichier uploadé 
					$begintab .= "
							<tr>
								<td class='file'><img class='imgtable' alt='logo Adobe' title='document PDF' src='./css/img/adobe_fichier.png'/>". $file ."</td>
								<td class='size'>". $final_size ."</td> 
								<td class='date'>".$datefinal."</td>
								<td><a href=index.php?controler=admin&action=suppr&p=". $file ."><img src='css/img/croixrouge.png' alt='Croix rouge' title='supprimer' /></a></td>
							</tr>
						";
					}
					$numFichier++;
 
			}		
		}
			$begintab .= "
						</tbody>
					</table>
				</div>";	
 
			echo $begintab;
			echo "<div class='pagination'>".pagination()."</div>";
 
		// On ferme la connexion
		closedir($dossier);
	}
}
?>
 
</div>
<!-- Bloc gris en background -->
<div class="bloc">
</div>
Et une page Ajaxfichiers.php (que j'include avant le chargement de la page admin.php.

Code Ajaxfichiers.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
<?php 
	//var_dump($_POST, $_FILES);
	$message = "";
 
if(!empty($_POST)) {
	for ($i = 0; $i < sizeof($_FILES["fichier"]["name"]); $i++) {
		// Si le fichier est bien renseigné alors on vérifie le type
		if(!empty($_FILES["fichier"]) and $_FILES["fichier"]["name"][$i] != "") {
 
			// Tableau des extensions gérées
			$typeFichier = array (
				"pdf",
			);
			// On remplace les espaces par des underscores 
			$good=array("_");
			$bad=array(" ");
				// Le tout au sein du nom du fichier
			$name=$_FILES["fichier"]["name"];
 
			$filename=str_replace($bad,$good,$name);
 
			// On récupère l'extension du fichier
			$fichier=strtolower(substr(strrchr($filename[$i], "."),1));
 
			//Pour gérer la taille du fichier
			$size=$_FILES["fichier"]["size"];
			$sizemax=104857600;
 
			if ($size >= $sizemax) {
 
				//Si l'extension est autorisée, on autorise le fichier
				if (in_array($fichier, $typeFichier)) {
 
					$destinationFichier = "../fichiers/". basename($filename[$i]);
 
					// Si le fichier est bien envoyé, alors on affiche le message correspondant
						if (move_uploaded_file($_FILES["fichier"]["tmp_name"][$i], $destinationFichier)) {
							// Informations sur le fichier transféré
							var_dump($fichier);
							$message .="INFO : Transfert réussi <br/>";
							$message .="Nom du fichier: ". $filename[$i] ."<br/>";
							header('Location: admin');
 
						} else {
							// Message d'erreur en cas de transfert échoué
							$message="Erreur ! Le transfert a échoué !";
						}	
				} else {
					$message="Erreur ! Le type d'extension n'est pas autorisé !";
				}	
			} else {
					$message="Erreur ! Le fichier est trop gros pour être uploadé !";
			}
		}
	}
}
 
//On envoie la réponse 
echo $message;
 
?>
Sauriez-vous m'indiquer où est située mon erreur (si il y en a une car je n'arrive pas à la voir) et m'aider dans la résolution de ce problème ?

Merci beaucoup !