Javascript 使用ajax上传文件时提交表单

Javascript 使用ajax上传文件时提交表单,javascript,ajax,Javascript,Ajax,我想提交一份表格来上传文件。我遇到的问题是,我需要使用AJAX将临时路径发送到php,然后获得一个数组作为响应 基本上,我想提交表单,获取临时路径,使用JS将其发送到PHP,然后从PHP返回一个数组作为对JS的响应 这就是我到目前为止所做的: <form name="form1" id="frmXML" method="post" action=""> <div> <label for='upload'>Agregar XML:</label&g

我想提交一份表格来上传文件。我遇到的问题是,我需要使用AJAX将临时路径发送到php,然后获得一个数组作为响应

基本上,我想提交表单,获取临时路径,使用JS将其发送到PHP,然后从PHP返回一个数组作为对JS的响应

这就是我到目前为止所做的:

<form name="form1" id="frmXML" method="post" action="">
<div>
    <label for='upload'>Agregar XML:</label>
    <input id='upload' name="upload[]" type="file" accept=".xml" multiple="multiple" onchange="doSelect(this)"/>
</div>

如果我理解正确,您希望在ajax请求完成后提交表单,因此这应该可以:

if(len>0)
    {
        $('form').submit()              
    }
你不能

撇开混合Ajax和非Ajax的所有逻辑不谈,将会发生以下情况:

  • 表单会将文件发送到PHP
  • PHP将运行,为文件分配一个临时路径,生成响应,从临时路径中删除文件,然后退出
  • JavaScript将获得一个不再存在的文件路径
  • JavaScript将向另一个PHP发出Ajax请求,并向其发送一个文件路径
  • 另一个PHP会查看该文件路径,但找不到该文件,因为它已被删除


  • 如果您想使用Ajax并将一个文件与之关联,那么最简单的方法就是使用Ajax发出一个单个HTTP请求,并将该文件包含在其中。

    否,我想提交表单,获取临时路径,使用JS将其发送到PHP,然后从PHP返回一个数组作为对JS的响应
    if(len>0)
        {
            $('form').submit()              
        }