gpt4 book ai didi

php - 如何在服务器端(php)接收使用 XMLHttpRequest 从浏览器发送的数据?

转载 作者:搜寻专家 更新时间:2023-10-31 21:15:20 26 4
gpt4 key购买 nike

我无法理解如何在我的 PHP 脚本中从 XMLHttpRequest 获取 blob。我在 JS 中有这样的代码:

var req = new XMLHttpRequest();          // create instance

var file = document.getElementById('file').files[0]; // get File Object from <input type=file />. It is picture

req.open("POST", “uploader.php”, true); // make request

req.setRequestHeader("Content-Type", file.type); set request headers
req.setRequestHeader("Content-Length", file.size);

req.send(file); // send request with file-blob

if (req.readyState == 4 && req.status == 200) {
alert("result = " + req.responseText);
}

我了解如何将 blob 发送到服务器,但不了解如何以及从何处将其发送到服务器。我尝试使用 $_POST$_GET$_FILES 全局数组,但它们没有任何文件。我什至尝试将 file 添加到 url 中,如下所示:

req.open("POST", “uploader.php?file=” + file, true); 

这也不是解决方案。

在这里阅读答案,我发现我可以使用 php://input 获取原始二进制数据。我试过了,是的,我得到了一些原始数据。将彻底检查此解决方案。但是想问一下是不是只有这样?如果不是,其他的是什么?那么哪一个是最正确的呢?

此外,当我设置 header ("Content-Length", file.size) 时,console.log 显示错误并显示“拒绝设置不安全的 header ”内容-长度”。这个 header 不是必需的吗?

最佳答案

查看下面的帖子:

image upload with ajax and php

您不能真正通过 XmlHttpRequest 上传 blob,但您可以使用隐藏的 iframe 创建类似 AJAX 的感觉。

看起来有些 JQuery 插件也可以帮助您。

希望对您有所帮助!

关于php - 如何在服务器端(php)接收使用 XMLHttpRequest 从浏览器发送的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com