我正在使用Javascript的XMLHttpRequest对象构建multipart / form-data httprequest。以下是标题:
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5
Content-Length: 38539
Content-Type: multipart/form-data; charset=UTF-8; boundary=CONTENT_BOUNDARY
Cookie: __utma=111872281.167592067.1396133699.1396133699.1396133699.1; PHPSESSID=ea7cfjgi8e29v1bhnrj580vbc2
DNT: 1
Host: localhost:90
Referer: localhost:90/my_secret_referer/no_peeking.php
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
我将请求发送到PHP文档。
在以下代码段中,可以观察请求正文的一部分。它详细说明了base64中二进制数据的传输,表示已选择的图像文件。
--CONTENT_BOUNDARY
Content-Disposition: form-data; name="images[]"; filename="airplane.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
.../9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDABkRExYTEBkWFBYcGxkeJT4pJSIiJUw3Oi0...
此正文部分与整个请求合作,为我的服务器创建成功的AJAX请求。当信息到达服务器时,我会解码信息并按照我的意愿行事。
我不满意的这个过程的一部分是二进制数据的手动解码。当使用jQuery时,一个人总是能够在服务器中接收上传的图像作为完整,清晰的图像文件< i> $。ajax()或Malsup's jQuery Form.我已经查看了上述两个请求的格式,并发现它们也使用multipart / form-data请求发送二进制信息。我发现的一个与众不同之处在于我的要求是带有
charset: utf8;
发送后的Content-Type内的规范。
我可以,如果可以的话,如何告诉服务器解码收到的二进制信息?