gpt4 book ai didi

javascript - 访问文件数据时出现问题

转载 作者:行者123 更新时间:2023-11-29 11:00:53 24 4
gpt4 key购买 nike

我正在尝试上传图像文件并将其存储在我的服务器上,并使用存储在 Mysql 数据库上的文件位置的路径。我正在使用 ajax 请求发送数据,但访问文件的任何部分时遇到严重问题:

PHP

<input type="file" id="upload_file" name='upload_file' style="width: 0px;height: 0px;">

调用此 JavaScript

function upload_photo(user_id) {

var file = document.getElementById('upload_file')

/* Create a FormData instance */
var formData = new FormData(form);
formData.append('user_id', user_id)
formData.append('file', file)
request = new ajaxRequest()
request.open("POST", "edit_details.php", true)
request.setRequestHeader("Content-type", "multipart/form-data")
request.onreadystatechange = function () {
if (this.readyState == 4)
if (this.status == 200)
if (this.responseText != null)
O('page').innerHTML = this.responseText
}
request.send(formData)

}

请求负载如下所示:

------WebKitFormBoundaryFA8fI4XH99ES61F6
Content-Disposition: form-data; name="file"

[object HTMLInputElement]
------WebKitFormBoundaryFA8fI4XH99ES61F6
Content-Disposition: form-data; name="user_id"

1001
------WebKitFormBoundaryFA8fI4XH99ES61F6--

但是当我调用 var_dump($_REQUEST) 时它会打印

有什么想法吗?我已经查看了很多负载,但无法解决这个问题。

我正在和我大学的一位教授交谈,他说“multipart/form-data”使用起来很痛苦,并说我可能更好地使用 PUT?

最佳答案

关于此问题,这里有两件事需要提及。

首先,您需要在客户端用 JavaScript 进行一些额外的工作,以传递多部分数据 - 我怀疑这就是您的老师可能一直在谈论的内容。为此,我建议您引用this SO answer .

其次,在服务器端,与所有其他表单数据不同,文件不在 $_GET、$_POST 或 $_REQUEST 数组中,而是在它们自己的 $_FILES array 中。反而。我鼓励您阅读此内容,但基本上,PHP 将在临时位置上传,您应该将文件复制到其最终位置 - 然后将路径保存到数据库中。

希望这有帮助!

关于javascript - 访问文件数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42283128/

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