Bonsoir,
me revoilà avec un sans doute "bête" problème, mais là, je ne vois plus rien.
Voici un formulaire de création d'article, avec possibilité d'uploader 3 phots. Je crée un dossier pour les accueillir...mais je n'obtiens rien. J'explique:
Je voulais 1 dossier pour contenir les 3 photos...je crée 1 dossier par photo....
...mais c'est le moins embetant
Le soucis essentiel...c'est que les documents ne suivent pas du tout...que ce soit avec 1, 2 ou 3 photos, aucune n'est chargée dans le dossier, ni nul part...et j'ai le message "problème de chargement photos: erreur système"
Si vous aviez le temps de regarder ça, et de me donner votre avis, une piste, une idée...je suis plus que preneur
la partie du form concernée, avec l'entête:
D'avance merci à tou-te-s
Modifié par boro64 (03 Jan 2011 - 14:15)
me revoilà avec un sans doute "bête" problème, mais là, je ne vois plus rien.
Voici un formulaire de création d'article, avec possibilité d'uploader 3 phots. Je crée un dossier pour les accueillir...mais je n'obtiens rien. J'explique:
Je voulais 1 dossier pour contenir les 3 photos...je crée 1 dossier par photo....

Le soucis essentiel...c'est que les documents ne suivent pas du tout...que ce soit avec 1, 2 ou 3 photos, aucune n'est chargée dans le dossier, ni nul part...et j'ai le message "problème de chargement photos: erreur système"
Si vous aviez le temps de regarder ça, et de me donner votre avis, une piste, une idée...je suis plus que preneur
set_time_limit(120);//modification de la limitation de temps d'exécution du script en seconde
$nom_dossier= $nouvel_id."-".date('d-m-y')."-".time();
$extension = array('jpg', 'gif', 'jpeg', 'png');//définition de la variable extension gérant les ext. autorisées
$dos_destinataire = mkdir("../boutik/imag-art/$nom_dossier ");//définition de l'adresse du dossier destinataire et création(mkdir) du dossier
// on teste si le formulaire permettant d'uploader un fichier a été soumis
if (isset($_POST['Enregistrer'])) {
// on se connecte notre base
include ('includes/connect.inc.php');
//déclaration chargement photo
if(isset($_FILES['fichier']))
{
//$_FILES existe
$compteur=0;
foreach ($_FILES['fichier']['name'] as $key => $value)
{
$fichier=$value;//nom reel de l'image
$size=$_FILES['fichier']['size'][$key]; //poids de l'image en octets
$tmp=$_FILES['fichier']['tmp_name'][$key];//nom temporaire de l'image (sur le serveur)
$type=$_FILES['fichier']['type'][$key];//type de l'image
//vérification du type de l'image et son poids
if ( in_array(substr($fichier, -3), $extension) && $size<=4194304 )
{
// type mime jpeg, jpg, gif ou png poids < à 4194304 octets soit 4Mo
//le nouveau nom de l'image est composé du nouvel id, de -, de la date format unix, d'un point et de l'extension.
$nom_final= $nouvel_id."-".date('d-m-y')."-".time().".".substr($fichier, -3);
//on déplace l'image dans le répertoire final
if (move_uploaded_file($tmp, $dos_destinataire . $nom_final))
{
//Message indiquant que tout s'est bien passé
//Pour le test on affiche l'image
echo '<p>Votre référence a bien été prise en compte<br /></p>';
}
}
$tab_final[$compteur] = $nom_final;
$compteur++;
}
}//fin de l'instruction if isset($_FILES['fichier'])
//vérification des erreurs
if ($_FILES['fichier']['error'] > 0)
{
echo '<p>Problème de chargement photo(s):';
switch($_FILES['fichier']['error']){
case 1:
print 'le fichier excede la definition upload_max_filessize du php ini';
break;
case 2:
print 'le fichier excede la quantité de 4mo définie dans le code';
break;
case 3:
print'le fichier n\'est qu\'en partie chargé';
break;
case 4:
print 'pas de fichier à charger';
break;
case 6:
print 'pas trouvé de dossier temporaire';
break;
case 7:
print'incapable d\'écrire sur le disque';
break;
case 8:
print 'arrêt du chargement par utilisateur';
break;
default:
print 'erreur systeme';
break;
}//fin switch
print '</p>';
}// fin du if pour erreurs
// on teste la déclaration de nos variables
if (!isset($_POST['descriptif']) && ($_POST['titre']) && ($_POST['prix']))
{
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['descriptif']) || empty($_POST['titre']) || empty($_POST['prix']))
{
$erreur = '<p>Le champ description, titre ou prix est vide.</p>';
}
// si tout est bon, on peut commencer l'insertion dans la base
la partie du form concernée, avec l'entête:
<form action="creat-art.php" class="gestart" method="POST" enctype="multipart/form-data" >
<input type="hidden" name="MAX_FILE_SIZE" VALUE="4194304" />
<legend>Upload des photos:</legend><br />
<label for="photo">Photo 1:</label><input type="file" name="fichier[]" /><br />
<label for="photo">Photo 2:</label><input type="file" name="fichier[]" /><br />
<label for="photo">Photo 3:</label><input type="file" name="fichier[]" /><br />
D'avance merci à tou-te-s
Modifié par boro64 (03 Jan 2011 - 14:15)