liens : http://www.commentcamarche.net,
http://www.siteduzero.com
Pour rappel, je suis sur serveur mutualisé, donc ce qui marche sur mon PC, ne fonctionne pas nécessairement en ligne.
1er étape :
Créer, à partir de la racine du site un dossier temporaire '/tmp' dans lequel seront stockés les fichiers uploadé.
Modifier les paramètres d'accès (CHMOD sous unix cf lien site du zéro), puis écrire la ligne de code ci-dessous qui permet d'indiquer au serveur le path du dossier temporaire.
<?php
ini_set('upload_tmp_dir', $myserveur_path.'/tmp');
?>
2ème étape (cf site du zéro) : formulaire d'upload d'un fichier
action = "" car je traite dans le même fichier html, le résultat du formulaire.
<form method="post" action="" enctype="multipart/form-data">
<div >
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
<input type="file" name="file_name" size="50">
<input type="submit" value="Envoyer">
</div>
</form>
<br/>
3ème étape : récupération de l'array qui reprend les paramètres du fichier chargé, par défaut je teste si un fichier a été chargé, cad si $_FILES['file_name'] existe ou est VRAI.
Puis on analyse les cas d'erreur, j'ai complété la liste fournie sur le site du zero avec le cas 6, lié a un problème de dossier temporaire.
<?php
if (isset($_FILES['file_name']))
{
if ($_FILES['file_name']['error']) { // www.commentcamarche.net
switch ($_FILES['file_name']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo "Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
case 6: // UPLOAD_ERR_NO_FILE
echo "Missing temporary folder : ".realpath(sys_get_temp_dir( void )).'<br/>';
break;
}
}
else {
// $_FILES['file_name']['error'] vaut 0 soit UPLOAD_ERR_OK
// ce qui signifie qu'il n'y a eu aucune erreur dans le chargement
// transfert du fichier dans un répertoir temporaire du serveur (siteduzero)
if ((isset($_FILES['file_name']['name'])&&
($_FILES['file_name']['error'] == UPLOAD_ERR_OK))) {
$chemin_destination = './tmp/';
$myfile_path = $chemin_destination.$_FILES['file_name']['name'];
move_uploaded_file($_FILES['file_name']['tmp_name'], $myfile_path);
}
// open file
$myfile = fopen($myfile_path, 'r'); //ouverture en lecture seule
//load data in table, ligne à ligne et chargement dans un tableau de strings
$index = 0;
while($word[$index] = fgets($myfile)){
$index++;
}
$nbr_lines = $index;
fclose($myfile);
}
}
?>
Aucun commentaire:
Enregistrer un commentaire