2011-05-07 3 views
2

Mon problème est assez simple.obtenir le nom de fichier du fichier téléchargé par ajax

Je suis en train d'écrire une classe uploader en php et j'ai décidé d'inclure le support pour les ajax uploads. En utilisant firefox, j'ai détecté qu'un en-tête X-File-Name est envoyé. J'utilise une bibliothèque javascript tierce pour les téléchargements, et il envoie le nom de fichier dans une chaîne de requête au script PHP. Ce que je souhaite savoir est, est-il un moyen cohérent d'obtenir le nom de fichier à travers le X-File-Name qui est compatible avec toutes les demandes ajax ou j'ai besoin des utilisateurs pour spécifier le nom du fichier.

Je peux demander aux utilisateurs de spécifier, mais j'aimerais avoir une méthode cohérente.

Merci.

+0

Quel type d'ajax ajouts, pouvez-vous spécifier? Il existe plusieurs méthodes de téléchargement informelles appelées "Ajax upload" –

Répondre

2

Il semble que rien de concret dans le monde de XHR. Je suis donc parvenu à utiliser l'en-tête X-File-Name si je l'ai trouvé mais en demandant un nom de fichier soumis par l'utilisateur. Les téléchargements sont lus à partir du flux d'entrée.

-3

Je crois que $_FILES[inputname][name] est ce que vous cherchez, où inputname est le nom donné à la boîte de saisie de téléchargement de fichier.

http://php.net/manual/en/reserved.variables.files.php

+0

Je parle de requêtes ajax. Les fichiers sont envoyés sur le flux d'entrée en php, donc je doute que les globales $ _FILES soient définies. – frostymarvelous

+0

Style niggle: $ _FILES ['nom_entrée'] ['nom'] est préférable, car votre code est incorrect (sauf si vous voulez utiliser la constante globale 'nom' pour obtenir la clé du tableau - ce qui n'est pas le cas ici) . –

+0

Je doute que cela fonctionnera puisque le côté client doit informer le script php que les données sont un fichier à travers les en-têtes envoyés. Je ne pense pas que ce soit le cas de tous les plugins et cela va créer des problèmes. En fait, j'ai lu le flux d'entrée pour les fichiers. Remarque. J'essaye de développer une classe portative pas une pour l'usage personnel seulement. – frostymarvelous

Questions connexes