猿问

xmlhttp请求本地文件

我具有要发送到服务器的其余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的原因。如果有人可以建议如何使用操作的返回值,那就太好了!!卡维塔


白衣染霜花
浏览 752回答 3
3回答

明月笑刀无情

我使用iframe。<div&nbsp;class="item"&nbsp;onclick="page(event)">HTML5</div><iframe&nbsp;id="page"&nbsp;src="">function&nbsp;page(e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;trigger&nbsp;=&nbsp;e.currentTarget.innerHTML; &nbsp;&nbsp;&nbsp;&nbsp;docname&nbsp;=&nbsp;new&nbsp;String(trigger&nbsp;+&nbsp;".txt"); &nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("page").src&nbsp;=&nbsp;docname;}
随时随地看视频慕课网APP
我要回答