2011-03-02 15:10

Content-Transfer-Encoding in file upload request


I'm trying to upload file, using XMLHTTPRequest, and sending this headers:

Content-Type:multipart/form-data, boundary=xxxxxxxxx

Content-Disposition: form-data; name='uploadfile'; filename='123_logo.jpg'
Content-Transfer-Encoding: base64
Content-Type: image/jpeg

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答


  • duanbeng8872 duanbeng8872 10年前

    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 Content-Encoding headers).

    点赞 评论 复制链接分享
  • douzhen9428 douzhen9428 10年前

    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.

    Also, there is RFC2388. In section 3, last paragraph, it says:

    Each part may be encoded and the "content-transfer-encoding" header
    supplied if the value of that part does not conform to the default

    Section 4.3 elaborates on this:

    4.3 Encoding

    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.]

    点赞 评论 复制链接分享