lecture/ecriture fichier
Bonjour
a titre didactique je modifie le script upload
je voudrais ecrire le nombre d'upload dans un fichier texte pour une reutilisation ulterieure comme limiter le nombre d'upload ou autre
j'ai donc créé un fichier count.txt avec les droits 777
peis j'ai modifie ce passage dans le script :
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET . $nomImage))
{
$message = 'Upload réussi !';
$fp = fopen("count.txt", "r+"); // ouvre le fichier en lecture/écriture
$nbimages = fgets($fp, 1); // récupère le nombre dans le fichier
$nbimages++; // incrémente le nombre d'images(+1)
fseek($fp, 0); // se place en début de fichier
fputs($fp, $nbimages); // écrit dans le fichier le nouveau nb
fclose($fp); // 6.On ferme le fichier
echo $nbimages; // affiche le resultat à l'écran
}
mais la valeur n'est pas ecrite dans le fichier donc ne s'affiche pas
Réponses apportées à cette discussion
Bonsoir,
l'erreur vient du fait que le fichier n'est ouvert qu'en lecture et non en écriture.
Les modes seront « r » (read), « w » ou « w+ » (write) (la différence avec ou sans le « + », c'est que sans, ça va remplacer le continuer, avec, ça va l'ajouter à la suite.), et quelques autres.
Remplace « r+ » par « w+ » et ça devrait beaucoup mieux fonctionner :)
malheureusement ça fonctionne toujours pas
est ce que mon bout de code est au bon endroit dans le fichier ?
a+
Ça je ne sais pas, il faudrait vérifier que le déroulement passe bien par là et que la condition du IF est bien remplie.
Ensuite, l'utilisation de fopen() peut aussi être testé et en relisant le code, il n'est pas exclu que le problème vienne de là : à vérifier comme ceci par exemple :
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET . $nomImage))
{
$message = 'Upload réussi !';
if(false !== ($fp = fopen("count.txt", "w"))) // ouvre le fichier en lecture/écriture
{
$nbimages = fgets($fp, 1); // récupère le nombre dans le fichier
$nbimages++; // incrémente le nombre d'images(+1)
fseek($fp, 0); // se place en début de fichier
fputs($fp, $nbimages); // écrit dans le fichier le nouveau nb
fclose($fp); // 6.On ferme le fichier
echo $nbimages; // affiche le resultat à l'écran
}
else
{
echo("<p>Erreur lors de l'ouverture du fichier</p>");
}
}
Si le message d'erreur s'affiche, c'est que le chemin vers le fichier n'est pas bon : il faudra alors l'ajuster en mettant un chemin absolu.