Javascript 如何将输入文件名作为变量传递给xmlhttp.open

Javascript 如何将输入文件名作为变量传递给xmlhttp.open,javascript,html,file,variables,input,Javascript,Html,File,Variables,Input,我想传递所选文件的名称。如果我把“文件名”改为url,它就会工作。这是我的测试代码。请帮我把它修好 <input id="upload" type="file" /> <script> document.getElementById('upload').onchange = uploadOnChange; function uploadOnChange() { var filename = this.value; var lastIndex = filename.la

我想传递所选文件的名称。如果我把“文件名”改为url,它就会工作。这是我的测试代码。请帮我把它修好

<input id="upload" type="file" />

<script>
document.getElementById('upload').onchange = uploadOnChange;

function uploadOnChange() {
var filename = this.value;
var lastIndex = filename.lastIndexOf("\\");
if (lastIndex >= 0) {
    filename = filename.substring(lastIndex + 1);
}

var url='"'+filename+'"'; 

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("GET",url,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

var tag=xmlDoc.getElementsByTagName("tag"); 

}
</script>

document.getElementById('upload').onchange=uploadOnChange;
函数uploadOnChange(){
var filename=this.value;
var lastIndex=filename.lastIndexOf(“\\”);
如果(lastIndex>=0){
filename=filename.substring(lastIndex+1);
}
var url='“'+文件名+'”;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
open(“GET”,url,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var tag=xmlDoc.getElementsByTagName(“标记”);
}

要将文件名传递给服务器;“filename”被传递,对吗?
XMLHttpRequest
是异步的,这里没有
onreadystate
回调,也许你应该看看ajax请求的一些例子?是的,“filename”被传递,但如果我使用输入函数它就不起作用了。