php - 使用xhr post form fields + file,重构服务端

标签 php javascript xmlhttprequest

我正在尝试通过 XHR 请求将 HTML 表单的数据提交到 php 脚本。

我遇到了代码问题,但我怀疑这与后端方面有关,但可能在 javascript 中做了一些不正确的事情,如下所示:

var fd = new FormData();
fd.append("title", $('#uploadVidTitle').val());
fd.append("proj", $('#uploadVidProject').val());
fd.append("desc", $('#uploadVidDesc').val());
fd.append("action", $('#uploadAction').val());
console.log(fd);
fd.append("uploadFile", document.getElementById('videoUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "actions.php", false);
xhr.send(fd);

目前在 php 代码中,我通过 $_POST["name"] 方法获取表单内容,但是无法使用 $_FILES["name"] 检索文件内容。任何指针将不胜感激。

最佳答案

我认为是服务器端的问题。试试这个

foreach ($_FILES as $id => $val)
      if (isset($_FILES[$id]['name']) && $_FILES[$id]['name'] != '')
      {
          //process files

使用 $_FILES[$id]['name'] 检索文件名对我有用。

关于php - 使用xhr post form fields + file,重构服务端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6737734/

相关文章:

javascript - 在 jQuery AJAX 成功中从 MySql 获取特定响应

php - jQuery ajax 提交的服务器端验证

php - 在 laravel 中加入查询返回重复数据

javascript - 在javascript中将时间转换为分钟

javascript - 如何只在子div元素中触发onclick事件,而不在父div元素中触发?

javascript - 如何使用 XMLHttpRequest 获取响应表单 servlet

php - 寻找领域中的共同值(value)

javascript - 在 Node 中使用 .pipe()

javascript - 强制同步 XMLHttpRequest/Ajax 而不发出警告

javascript - 使用 JavaScript 发送 HTTP 请求?