J'essaye de télécharger un fichier d'un iPhone vers un serveur. J'essaie d'éviter d'utiliser des bibliothèques qui ne sont pas faites par apple, et d'après ce que je peux dire, il me semble que je devrais aller assez bas sur la construction de ma requête. Quelqu'un peut-il me dire ce que la "limite" est dans une demande multipart/form-data et comment l'utiliser correctement?Comment les limites fonctionnent-elles dans les demandes de publication en plusieurs parties?
Répondre
La limite est un morceau de texte arbitraire que le client utilise pour délimiter les champs du formulaire affiché. Le client déclare la limite qu'il utilise dans l'en-tête Content-type
.
From the IETF Form-based File Upload in HTML RFC:
Une limite est sélectionnée qui ne se produit pas dans l'une des données. (Cette sélection est parfois effectuée de manière probabiliste.) Chaque champ de la forme est envoyé, dans l'ordre dans lequel il se présente dans le formulaire, comme une partie de le flux multi-parties. Chaque partie identifie le nom INPUT dans le formulaire HTML original . Chaque partie doit être étiquetée avec un type de contenu approprié si le type de support est connu (par exemple, déduit du fichier extension ou des informations de type de système d'exploitation) ou application/octet-stream.
...
6. Exemples
Supposons que le serveur fournit le code HTML suivant:
<FORM ACTION="http://server.dom/cgi/handle" ENCTYPE="multipart/form-data" METHOD=POST> What is your name? <INPUT TYPE=TEXT NAME=submitter> What files are you sending? <INPUT TYPE=FILE NAME=pics> </FORM>
et les types d'utilisateurs "Joe Blow" dans le champ de nom, et sélectionne un texte fichier "file1.txt" pour la réponse à "Quels fichiers envoyez-vous?"
Le client peut renvoyer les données suivantes:
Content-type: multipart/form-data, boundary=AaB03x --AaB03x content-disposition: form-data; name="field1" Joe Blow --AaB03x content-disposition: form-data; name="pics"; filename="file1.txt" Content-Type: text/plain ... contents of file1.txt ... --AaB03x--
Si l'utilisateur a indiqué également un fichier image « file2.gif » pour la réponse à ? Quels fichiers envoyez-vous », le client peut client peut envoyer retour les données suivantes:
Content-type: multipart/form-data, boundary=AaB03x --AaB03x content-disposition: form-data; name="field1" Joe Blow --AaB03x content-disposition: form-data; name="pics" Content-type: multipart/mixed, boundary=BbC04y --BbC04y Content-disposition: attachment; filename="file1.txt"
Dans le premier exemple, la limite est de la chaîne fixe AaB03x
. Dans le deuxième exemple, la limite est d'abord AaB03x
puis passe à BbC04y
.
Beaucoup mieux, merci. Converti -1 en upvote. –
Rédigez-vous du code ou un code de serveur? –
Les deux, mais je demande à propos de la construction de la demande sur le côté client (iphone). – tybro0103