Rename PHP : No error
Résolu
yirkkiller
-
yirkkiller -
yirkkiller -
Bonjour à tous,
Je suis sous Windows 7, avec WampServer 2.0i.
J'ai un problème avec le module d'upload de fichier.
Voici le code de mon formulaire :
Et voici le code de l'upload :
J'ai une erreur dans le log de Apache :
[Mon May 10 15:55:57 2010] [error] [client 127.0.0.1] PHP Warning: rename(C:\\wamp\\tmp\\phpFBC7.tmp,logs/logs.txt) [<a href='function.rename'>function.rename</a>]: No error in D:\\logsfortinet\\envoi.php on line 25, referer: http://127.0.0.1/logs/index.html
De plus, dans le répertoire logs, j'obtiens un fichier appelé comme il faut (logs.txt), mais vide (0 Ko).
Pourriez-vous m'aider svp ?
Merci à tous
Je suis sous Windows 7, avec WampServer 2.0i.
J'ai un problème avec le module d'upload de fichier.
Voici le code de mon formulaire :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Gestion des Logs Fortinet</title>
</head>
<body>
<form id="fichier" name="fichier" method="post" action="envoi.php" ENCTYPE="multipart/form-data" >
<div align="center">
<INPUT type=hidden name=MAX_FILE_SIZE VALUE=20480000>
<br />
<INPUT name="fichier" type=file id="fichier">
<label></label>
<p>
<label>Date de la bascule (jj/mm/aaaa) :
<input name="date" type="text" id="date" />
</label>
<br />
<br />
<INPUT type=submit name="upload" value="Envoyer">
</p>
</div>
</form>
</body>
</html>
Et voici le code de l'upload :
<?php
# Variables de test
$_POST['date'] = "2010-05-04";
$date = $_POST['date'];
#Upload et intégration du fichier
$repertoireDestination = "logs/";
$nomDestination = "logs.txt";
// Pour raison de sécurité nous ajouterons aux fichiers
// portant une extension .php .php3, l'extension .txt
if (mb_eregi(".php", $nomDestination))
{
$nomDestination .= ".txt";
}
if (is_uploaded_file($_FILES["fichier"]["tmp_name"])) {
if (file_exists($repertoireDestination.$nomDestination))
{
rename($repertoireDestination.$nomDestination,$repertoireDestination."archive".date('dmYGi').".txt");
}
if (rename($_FILES["fichier"]["tmp_name"],
$repertoireDestination.$nomDestination)) {
echo "Le fichier temporaire ".$_FILES["fichier"]["tmp_name"].
" a été déplacé vers ".$repertoireDestination.$nomDestination;
} else {
echo "Le déplacement du fichier temporaire a échoué".
" vérifiez l'existence du répertoire ".$repertoireDestination;
}
} else {
echo "Le fichier n'a pas été uploadé (trop gros ?)";
}
J'ai une erreur dans le log de Apache :
[Mon May 10 15:55:57 2010] [error] [client 127.0.0.1] PHP Warning: rename(C:\\wamp\\tmp\\phpFBC7.tmp,logs/logs.txt) [<a href='function.rename'>function.rename</a>]: No error in D:\\logsfortinet\\envoi.php on line 25, referer: http://127.0.0.1/logs/index.html
De plus, dans le répertoire logs, j'obtiens un fichier appelé comme il faut (logs.txt), mais vide (0 Ko).
Pourriez-vous m'aider svp ?
Merci à tous
3 réponses
-
Bonjour,
Dans tes formulaires HTML, met des guillemets pour toutes les valeurs non numériques de tes attributs.... Des fois tu en met, d'autre fois non.
-
-
Problème résolu :
Remplacer rename par move_uploaded_file();
Le nouveau code :
<?php # Variables de test $_POST['date'] = "2010-05-04"; $date = $_POST['date']; #Upload et intégration du fichier $repertoireDestination = "logs/"; $nomDestination = "logs.txt"; // Pour raison de sécurité nous ajouterons aux fichiers // portant une extension .php .php3, l'extension .txt if (mb_eregi(".php", $nomDestination)) { $nomDestination .= ".txt"; } if (is_uploaded_file($_FILES["fichier"]["tmp_name"])) { if (file_exists($repertoireDestination.$nomDestination)) { rename($repertoireDestination.$nomDestination,$repertoireDestination."archive".date('dmYGi').".txt"); } if (move_uploaded_file($_FILES["fichier"]["tmp_name"],$repertoireDestination.$nomDestination)) { echo "Le fichier temporaire ".$_FILES["fichier"]["tmp_name"]. " a été déplacé vers ".$repertoireDestination.$nomDestination; } else { echo "Le déplacement du fichier temporaire a échoué". " vérifiez l'existence du répertoire ".$repertoireDestination; } } else { echo "Le fichier n'a pas été uploadé (trop gros ?)"; }