Bonjour !
J'ai besoin de récupérer les fichiers que des utilisateurs m'envoient par le web. A priori, je vais mettre un simple " input type='file' " en html, et je pensais récupérer le fichier en php.
Mais je veux aussi mettre une barre de progression du transfert qui soit réaliste. Pour ça, j'utiliserai XMLHttpRequest et ses pour IE, en demandant à intervalles réguliers au serveur où le transfert en est.
Le problème est simple : je ne connais pas de moyen, avec PHP, d'exécuter un script avant la copie entière du fichier dans les dossiers temporaires.
La solution à laquelle je pense est plus complexe : il faudrait un programme exécuté en local qui serait chargé de recevoir le fichier et, avec un autre thread, de répondre aux requêtes de Javascript quand à la progression.
Et c'est là que ça coince... En effet, le programme (en C++, probablement) doit recevoir la connexion du navigateur (lequel envoie le fichier par HTTP), alors qu'apache fonctionne toujours. Donc sur un autre port. Or XMLHttpRequest ne peut se connecter qu'au serveur de la page html, et sur le même port (pour des raisons de sécurité). Alors comment le programme en C++ pourrait-il recevoir la connexion ?
Je vois plusieurs solutions :
- Intégrer le programme à Apache (extension) ?
- Intercepter certaines connexions que devrait recevoir Apache (j'ai pas de copain qui bosse à la CIA...)
- Mettre un iFrame dans la page, qui contiendrait le formulaire envoyé par le programme de réception du fichier ?
Je pense utiliser la troisième, qu'en pensez-vous ? Y aurait-il quelque-chose de beaucoup plus simple ?
PS: Personne n'a répondu à ce sujet sur le forum Dev-Web, je pense donc que c'est ici que je devrait le mettre.
Merci d'avance,
Caerbannog.
Partager