2010-07-20 6 views
0

J'ai un en-tête multipart, qui commence parComment analyser cet en-tête?

------------------123456\r\n 

où 123456 est un guid. Je veux extraire cela. J'essaie de trouver dans les spécifications comment cet en-tête est fait, mais je ne sais pas pourquoi il y a autant de tirets ou même si le nombre d'entre eux est corrigé. w3c semble suggérer qu'il n'y a que deux tirets --123456 mais évidemment ce n'est pas correct comme vous pouvez le voir.

Quelle est la meilleure façon d'analyser l'ID afin de pouvoir l'utiliser pour diviser les autres en-têtes? Edit: Je n'ai pas de limite, mes données entrantes ressemblent à ceci. Ma forme contient une zone de texte et un téléchargement de fichier:

-----------------------------7da292321290902\r\nContent-Disposition: form-data; 
name=\"my_title\"\r\n\r\nWhat I typed in the textbox\r\n----------------------------- 
7da292321290902\r\nContent-Disposition: form-data; name=\"upload\"; 
filename=\"C:\\myFile.zip\"\r\nContent-Type: application/x-zip-compressed\r\n\r\n ascii 
data here for the file contents 

Répondre

2

La frontière doit être spécifié dans le Content-Type: partie de votre document MIME.

Content-Type: multipart/mixed; 
       boundary=----------------123456 

Vous devriez alors être en mesure de rechercher les lignes

"--"+boundary+"\r\n" 

et

"--"+boundary+"--\r\n" 

Il existe plusieurs RFCs spécifiant le format MIME, mais Wikipédia donne un bon aperçu: http://en.wikipedia.org/wiki/MIME

+0

Une autre partie du programme a été retirée et stockée, c'est pourquoi j'étais si confuse, mais Je l'ai trouvé et tout va bien maintenant. Merci beaucoup! – NibblyPig