Do you have a question? Post it now! No Registration Necessary. Now with pictures!
- Posted on
September 4, 2004, 7:20 pm
rate this thread
what I'm reading is stuff I didn't know before and some of it is
alarming. This one left with me questions:
Is this (below) addressed to me as a web designer, or is this
addressed to the makers of web browsers? Identifying the type of file
being uploaded seems way outside of my scope as a PHP coder. Am I
suppose to make clear the expected type of content when I design a
form? Off hand, I can only think of two things that every go into an
HTML form: strings and binary data. Should I actually label every
INPUT with the expected type (does anyone do this?), or can I assume
the makers of web browsers have already done that for me? My PHP form
code is fairly concise, so I could add in mime/text rather easily, but
is it necessary? Surely the browser knows that everything save binary
files is a string?
3.3 use of multipart/form-data
The definition of multipart/form-data is included in section 7. A
boundary is selected that does not occur in any of the data. (This
selection is sometimes done probabilisticly.) Each field of the form
is sent, in the order in which it occurs in the form, as a part of
the multipart stream. Each part identifies the INPUT name within
original HTML form. Each part should be labelled with an appropriate
content-type if the media type is known (e.g., inferred from the
extension or operating system typing information) or as
They give the example below. Am I right to say that I don't need to
think about any of this, that the web browser does all this
automatically? The browser figures out that file2.gif is a gif image
that needs to be sent with a the header Content-type: image/gif, yes?
If the user also indicated an image file "file2.gif" for the answer
to 'What files are you sending?', the client might client might
back the following data:
Content-type: multipart/form-data, boundary=AaB03x
content-disposition: form-data; name="field1"
content-disposition: form-data; name="pics"
Content-type: multipart/mixed, boundary=BbC04y
Content-disposition: attachment; filename="file1.txt"
... contents of file1.txt ...
Content-disposition: attachment; filename="file2.gif"
...contents of file2.gif...
Also, can anyone help me understand this? If I wanted to send multiple
files as part of a form input, how would I use the multipart/mixed
header, or the "content-transfer-encoding" header? Can anyone point me
to an example, so I might have a better chance of understanding this?
As with all multipart MIME types, each part has an optional
"Content-Type", which defaults to text/plain. If the contents of a
file are returned via filling out a form, then the file input is
identified as the appropriate media type, if known, or
"application/octet-stream". If multiple files are to be returned
the result of a single form entry, they should be represented as a
"multipart/mixed" part embedded within the "multipart/form-data".
Each part may be encoded and the "content-transfer-encoding" header
supplied if the value of that part does not conform to the default
Re: does anyone declare a different data type on every input in a form?
[ ... ]
Section 3.3 outlines the browser's job when using
multipart/form-data, so it's largely irrelevant to web
designers. It might be useful to understand the goings-on
I can't recommend anything other than the two RFCs you
mentioned (nos. 1867 and 2388) and chapter 17 of the HTML
spec. It's all there.
[ ... ]
Have a good Sunday! if there's anything left.
- — Previous thread in » PHP Scripting Forum