Je développe un script en PHP pour télécharger des fichiers dans une base de données MySQL. Il ya diverses choses qui doivent être sélectionnées en plus du fichier réel qui va dans l'entrée de la base de données. Le script doit être conçu de sorte qu'il vérifie que toutes les sélections appropriées ont bien été effectuées. Si ce n'est pas le cas, le script revient à l'état du fichier de téléchargement avec les valeurs que l'utilisateur a sélectionnées. J'ai accompli cela pour les cases de sélection de l'utilisation de variables de session, mais je ne peux pas comprendre comment obtenir le chemin réel de l'entrée de téléchargement de fichier à publier. Je peux seulement sembler accéder au nom de dossier et pas au chemin réel du tableau $ _FILE. J'ai également essayé de faire ce qui suit:Stocker le chemin d'accès d'un fichier sélectionné par l'utilisateur comme variable de session pour remplir le champ plus tard
echo "<input type='hidden' name='MAX_FILE_SIZE' value='8000000'>";
echo "<input type='hidden' name='remote_file_path' value=''>";
echo "<input name='userfile'type='file'
onchange='document.uploadForm.remote_file_path.value=this.value;'>";
Naturellement, le nom du formulaire est "uploadForm". Cela fonctionne, mais encore une fois en accédant à la valeur de $ _POST ['remote_file_path'], je reçois seulement le nom de fichier et pas le chemin. Après quelques recherches, il semble qu'il s'agisse d'une fonctionnalité de sécurité intégrée à Fire Fox. Je commence à penser que cela ne peut pas être fait.
Merci d'avance.
Donc, une fois qu'un fichier est téléchargé, il reste dans le répertoire tmp sur le serveur jusqu'à ce qu'il soit remplacé par un autre fichier téléchargé? Ce qui signifie que $ _FILES ['userfile'] ['tmp_name'] conserverait le même répertoire sur un deuxième message du formulaire par utilisateur tant qu'aucun nouveau fichier n'a été sélectionné via l'entrée? – dbaugh
Pas exactement. $ _FILES ['userfile'] ['tmp_name'] serait vide ou remplacé par un nouveau fichier selon que quelque chose a été téléchargé ou non.C'est pourquoi le fichier d'origine doit être déplacé vers un autre emplacement sécurisé, lui donner un nom unique et enregistrer le nom dans la session en cours. Si un nouveau fichier est téléchargé, supprimez l'ancien et traitez le plus récent, sinon trouvez le nom du fichier stocké dans la session, saisissez le fichier et poursuivez le traitement ultérieur. –