[PHP] Appel à move_uploaded_file différé

Je suis en train de créer une administration de base de données. Afin d’être en accord avec plusieurs contraintes d’intégrité fonctionnelles, je dois saisir un certain nombre d’informations et cela sur plusieurs pages. Dans ces données je dois spécifier plusieurs images… Toutes ces données sont stockées sous forme de variables de sessions ainsi que le nom des fichiers temporaires générées automatiquement. Un seul insert global est effectué à la fin dans plusieurs tables.

Pour tout ce qui est données textuelles cela ne pose aucun problème, touttefois pour les images cela ne fonctionne pas… mes move_uploaded_file ne fonctionnent pas, est-ce que le fichier temporaire qui est généré est effacé ?

Si c’est le cas , quelle est la solution ?

Si vous avez la soluce n’hésitez pas car là je suis bien dans “la mouise” … :fou: .

:jap:

j’ai pas encore testé l’upload de fichier avec des sessions derriere, mais afin de vérifier ton hypothese de fichier temporaire supprimé, verifie s’il existe toujours d’une page à l’autre avec filesize($tonfichiertmp)
garde tu bien toutes les informations contenu dans $_FILE ?

cf.
http://fr.php.net/manual/fr/function.move-uploaded-file.php
http://fr.php.net/manual/fr/features.file-upload.php

Tout à la fin :

Merci pour ta réponse :jap:

Je pourrait déplacer les fichiers que souhaitent uploader l’utilisateur dans un fichier temporaire. Et déplacer les fichiers du répertoire temporaire dans leur répertoire respectif.

Pour qu’il n’y est pas d’écrasement dans le dossier temporaire, je me demande quel nom de fichier je pourrai utiliser afin qu’il soit toujours unique.
Est-ce que le nom temporaire attribué à un fichier uploader ( $_FILES[‘userfile’][‘tmp_name’] ) est toujours différent ?

Sinon, je pourrais uiliser un simple entier qui s’incrémentera au fur et à mesure …

Sinon je pourrait peut-être utiliser celui-là.

Ah oui, vous allez me dire d’utiliser directement le nom final qui sera donné au fichier, ben je ne peux pas, ce nom va découler des inserts que je ferai à la fin.

tu peux toujours utiliser time(), ou md5(time()), comme nom de fichier (avec éventuellement un indice si tu as plusieurs fichiers en meme temps), que tu pourra stocker en session, et effacer une fois la requete finale exécutée

Oui ca peut être une solution aussi. Merci de ta réponse :jap:

tu as uniq_id() (voir doc php)

http://fr.php.net/manual/fr/function.uniqid.php

genre ça donnerait :
[cpp]function getfile()
{
$file = uniqid(‘tmp’, true );
while ( file_exists( ‘tmp/’ . $file ) )
$file = uniqid(‘tmp’, true);
return $file;
}[/cpp]

etc.

Sachant que tu peux préfixer le nom du fichier par un nom d’utilisateur quelconque.

Ok merci bien, avec tout ça je n’ai plus aucun problème pour finir mes scripts.

:jap: :jap: