应该修改文件上传,所以我尝试手动组合上传字符串:
function submitdata(){
//var data = new FormData();
var sb="";
var BOUNDARY = "-------------------------4827543632391";
sb+="--"+BOUNDARY;
sb+="\r\n";
sb+="Content-Disposition: form-data; name=\"fileinput\" filename=\"004.jpg\" \r\n";
sb+="Content-Type: image/jpeg\r\n\r\n";
.....
var reader = new FileReader();
reader.readAsBinaryString(data);
//fd.append("blob", sb);
reader.onload = function(e){
sb+=this.result;
sb+="\r\n--" + BOUNDARY + "--\r\n";
var datasubmit="Content-Type:multipart/form-data; boundary="+BOUNDARY+"\n";
datasubmit+="Content-Length: "+eval(sb.length)+ "\r\n\r\n";
var xhr = new XMLHttpRequest();
xhr.open("POST", "addimages");
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.overrideMimeType('multipart/form-data');
xhr.sendAsBinary(datasubmit+sb);
}
}
每次提交数据正文为:
Content-Type:multipart/form-data; boundary=-------------------------4827543632391
Content-Length: 283111
我想把上面的部分听到没有身体!!!
---------------------------4827543632391
Content-Disposition: form-data; name="fileinput" filename="004.jpg"
Content-Type: image/jpeg
ÿØÿà�JFIF������ÿÛ�C� %# , #&')*)-0-(0%()(ÿÛ�C (((((((((((((((((((((((((((((((((((((((((((((((((((ÿÀ�@m"�ÿÄ����������� ÿÄ�µ���}�!1AQa"q2¡#B±ÁRÑð$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ�������� ÿÄ�µ��w�!1AQaq"2B¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz....
我想要的是:
Request Headers From Upload Stream
Content-Length: 283122
Content-Type: multipart/form-data;boundary=---------------------------23281168279961
我只是不知道我的
内容类型:多部分/格式的数据; ......到Stream Form的标题部分
有人能给我一个带有“Content-Type:multipart / form-data; ..”的http包的例子吗?或者告诉我如何编写java脚本以将Content-Type:置于head部分。 我试过xhr.setRequestHeader(),它写了httphearder而不是Upload Stream标题。
答案 0 :(得分:2)
我可能会误解,但您需要在xhr.setRequestHeader()方法调用中创建新的标头。
当你正在做(并且看到)时,你只是将材料添加到身体上。 setRequestHeader()方法(将标题名称和内容作为两个参数)将创建要发送的新标头。请注意,您可以多次调用该方法来创建所需数量的标题。
希望这有帮助。