[Résolu] CGI et upload de fichier

CGI et upload de fichier [Résolu] - C - Programmation

Marsh Posté le 24-06-2004 à 16:13:09    

Salut !
Je viens poster ici car apres avoir été dans la rubrique HTML/JavaScript .... on m'a dit qu'il vallait peut etre mieux venir ici.
 
Donc, voilà le problème (je recopie un résumé du post de l'autre rubrique) :
Je suis un peu embetté car, étant en stage, je dois réaliser un module Intranet en CGI (codé en C). (e qui fait que je tappe toutes mes pages HTML avec du fprintf(stdout, "<html>" ) ....  
 
Bref, j'ai un petit souci sur lequel je n'arrive pas a trouver ma réponse.  
Les utilisateurs doivent pouvoir télécharger des pieces jointes.  
J'ai déjà fait ca en ASP ainsi qu'en PHP sans gros pbs (a part un peu pour l'ASP mais bon).  
Le truc, c'est que je ne sais pas comment faire pour télécharger la piece jointe sur le serveur ....  
 
En fait, je n'ai meme pas besoin de l'enregistrer sur le serveur mais simplement de la lire (c'est pour une base de donnée qui supporte les objets spéciaux).  
 
Apparemment, c'est le HTML qui télécharge tout seul le fichier et qui le met dans son en-tete. (D'apres ce que j'ai pu comprendre)
 
Théoriquement, en faisant un fscanf sur mon stdin, je devrais avoir les en-tetes (toujours d'apres ce que j'ai lu et le test que DocMaboul a fait pour moi .... merci beaucoup d'ailleurs).
Or, je n'ai strictement rien ...
 
Quelqu'un pourrait il m'aider ?
J'ai matté le fichier log du serveur Apache et pas d'erreurs


Message édité par Worldofdada le 29-06-2004 à 16:24:52
Reply

Marsh Posté le 24-06-2004 à 16:13:09   

Reply

Marsh Posté le 28-06-2004 à 16:05:44    

Vous aurez le fichier dans les données postées. Utilisez fread plutôt que fscanf et getenv("CONTENT_LENGTH" ) pour connaître la taille de ces données. Utilisez aussi des fichiers textes pour faire vos tests et passez ensuite à des fichiers binaires.

Reply

Marsh Posté le 28-06-2004 à 17:06:22    

Que ce soit fscanf ou fread sur stdin, j'ai le meme résultat, c'est à dire rien du tout.
 
Et si je fais un getenv("CONTENT_LENGTH" ) : Server error  
Idem si je met CONTENT_TYPE. Par contre, QUERY_STRING marche
 
Je précise que je suis en method GET mais je pense pas que celà change quelque chose au problème
 
Merci pour votre aide ...

Reply

Marsh Posté le 28-06-2004 à 18:35:32    

Worldofdada a écrit :


Je précise que je suis en method GET mais je pense pas que celà change quelque chose au problème


 
groumf. http://www.faqs.org/rfcs/rfc1867.html

Reply

Marsh Posté le 29-06-2004 à 09:00:18    

Déjà imprimé et déjà lu ....  
Ca explique simplement comment est codé le fichier dans l'en-tete MIME.
 
Mais je n'arrive pas a récupérer cet en-tete :-S

Reply

Marsh Posté le 29-06-2004 à 09:07:36    

Worldofdada a écrit :

Déjà imprimé et déjà lu ....  
Ca explique simplement comment est codé le fichier dans l'en-tete MIME.
 
Mais je n'arrive pas a récupérer cet en-tete :-S


 
He bien à votre place, je ferais un test avec method="POST", pour voir...

Reply

Marsh Posté le 29-06-2004 à 09:11:49    

DocMaboul a écrit :

He bien à votre place, je ferais un test avec method="POST", pour voir...


+1
 
c'est uniquement faisable en POST à mon avis aussi


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 29-06-2004 à 09:14:07    

JagStang a écrit :

+1
 
c'est uniquement faisable en POST à mon avis aussi


 
On peut envoyer le contenu d'un fichier, ou quoi que ce soit d'autre d'ailleurs, avec un get mais pas à partir d'un browser. Enfin, pas à ma connaissance.

Reply

Marsh Posté le 29-06-2004 à 09:50:47    

Effectivement, en POST, j'arrive a récupérer le MIME .....
Me reste plus qu'a analyser cette affaire .... c'est pas gagné mais c'est toujours un peu mieux .....
 
Par contre, apres 3-4 tests, j'ai l'impression que je ne récupere que le fichier si c'est un .txt or je dois pouvoir récupérer des images, des fichiers Word .... je vais essayer de fouiller ca.
 
Merci
P.S : je suis prenneur si vous connaissez un script permettant de décoder la piece jointe  :)


Message édité par Worldofdada le 29-06-2004 à 09:51:17
Reply

Marsh Posté le 29-06-2004 à 16:24:31    

C'est bon, j'ai réussi a tout récupérer .....  
 
Merci beaucoup pour votre aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed