我想提交表单来上传文件。我遇到的问题是我需要使用 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>
JS:
function doSelect(el){
$.ajax({
type : 'POST',
data: {
path:this.document.getElementById('upload').value,
submit: 'submit',
}
url : 'Logica/Usuario.php',
dataType:'json',
success : function(response){
var len =response.length;
if(len>0)
{
//Do something
}
}
});
return false;
}
最佳答案
你不能。
抛开混合 Ajax 和非 Ajax 的所有后勤工作,将会发生以下情况:
- 表单会将文件发送到 PHP
- PHP 将运行,为文件分配临时路径,生成响应,从临时路径中删除文件,然后退出
- JavaScript 将获取不再存在的文件路径
- JavaScript 会向另一个 PHP 发出 Ajax 请求并向其发送文件路径
- 另一个 PHP 会查看该文件路径但找不到该文件,因为它已被删除
如果您想要执行 Ajax 并将文件与其关联,那么最简单的方法是使用 Ajax 发出单个 HTTP 请求,并将文件包含在其中。
关于javascript - 使用ajax上传文件时提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56025880/