I’m trying to upload file, using XMLHTTPRequest, and sending this headers:
Content-Type:multipart/form-data, boundary=xxxxxxxxx --xxxxxxxxx Content-Disposition: form-data; name='uploadfile'; filename='123_logo.jpg' Content-Transfer-Encoding: base64 Content-Type: image/jpeg /*base64data*/
But on server side PHP ignore header “Content-Transfer-Encoding: base64”
and write base64 undecoded data directly into the file!
Is there any way to fix it?
p.s. it is very important to send data using base64
My previous answer was wrong
Content-Transfer-Encoding may appear in the a composite body
There are several consequences of this. The entity-body for composite
types MAY contain many body-parts, each with its own MIME and HTTP
headers (including Content-MD5, Content-Transfer-Encoding, and
Xavier’s answer doesn’t sound right. RFC2616 also has this to say (section 3.7):
In general, HTTP treats a multipart
message-body no differently than
any other media type: strictly as
payload. The one exception is the
It seems to me that section 19.4 of RFC2616 is talking about HTTP as a whole, in the sense that it uses a syntax similar to MIME (like headers format), but is not MIME-compliant.
Each part may be encoded and the
supplied if the value of that part
does not conform to the default
Section 4.3 elaborates on this:
While the HTTP protocol can transport arbitrary binary data, the
default for mail transport is the 7BIT encoding. The value supplied
for a part may need to be encoded and the "content-transfer-encoding"
header supplied if the value does not conform to the default
encoding. [See section 5 of RFC 2046 for more details.]