我具有要发送到服务器的其余Web服务的文件的路径。我正在使用xmlhttprequest对象。帖子如下:
var url = "http://localhost:8080/RestWSGS/jersey/gridsense"; var boundary = "--------------" + (new Date).getTime(); xmlHttp.open('POST', url, true); xmlHttp.onreadystatechange = function () { if (this.readyState != 4) return; var result =this.responseText; document.write(result); }; xmlHttp.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);var part =""; part += 'Content-Disposition: form-data; '; part += 'name="' + document.getElementById("filename").name + '" ; '; //alert(document.getElementById("filename").value); part += 'filename="'+ document.getElementById("filename").value + '";\r\n'; part += "Content-Type: application/xml"; part += "\r\n\r\n"; // marks end of the headers part part += 'filename="'+ document.getElementById("filename").value + '";\r\n'; part+= data; var request = "--" + boundary + "\r\n"; request+= part /* + "--" + boundary + "\r\n" */; request+= "--" + boundary + "--" + "\r\n"; alert(request); xmlHttp.send(request);
我要发送的数据在客户端本地磁盘上。我想使用get方法:
var str = document.getElementById("filename").value; var data; var xmlhttp1 = getNewHTTPObject(); xmlhttp1.open("GET", "file:///New Folder/" +document.getElementById("filename").value , false); xmlhttp1.send(null); alert('hi' + xmlhttp1.status); xmlhttp1.onreadystatechange = function() { if (this.status == 0) { alert("resp " + this.responseText); data = this.responseText; } }
file://不起作用。如果我将文件放在客户端目录中并删除文件:///,那么我至少可以看到xmlhttprequest打开并给出状态200(我认为还可以!)。我读到本地文件检查状态== 0而不是readystatus == 4,所以我做到了,但是它仍然将数据变量定义为undefined,因此文件不会发送到服务器。最初,当我将表单操作作为我的休息网址时,它可以正常上传。由于我没有使用html5,因此无法从输入type = file元素获取File对象。我想为此使用xmlhttprequest对象,而不是直接使用form元素。请通过任何建议或提示帮助我解决这个问题
即使我使用表单提交进行上传,我如何也可以使用Web服务的返回值。那就是我需要使用xmlhttpRequest的原因。如果有人可以建议如何使用操作的返回值,那就太好了!!卡维塔
明月笑刀无情