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>
    <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 的所有后勤工作,将会发生以下情况:

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

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

关于javascript - 使用ajax上传文件时提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56025880/

相关文章:

javascript - JQuery Ajax Json 响应不起作用

javascript - 如何让 Vue 在 init 时自动实例化组件?

javascript - 覆盖默认警报和确认框

javascript - php - jar 文件的后台进程,如何在进程完成时获得异步通知?

javascript - Css3 动画故障错误 Chrome 和 Firefox

javascript - 是否可以在用户单击 HTML 链接后设置超时?

Javascript 在另一个对象中调用对象

jquery - 从 Spring MVC 向 jQuery 报告错误的最佳实践

javascript - PHP AJAX 没有收到 SESSION

jquery - 如何在使用ajax时自动隐藏flash消息