中选择的文件?-6ren"> 中选择的文件?-我正在开发一个 WordPress 主题,我有一个 PHP 函数可以处理异步请求,该请求为服务器提供 JSON 和图像。我的表单(为了便于阅读,去掉了一堆内部 HTML)看起来像 9-6ren">
gpt4 book ai didi

php - 为什么我无法获取在我的 <input type ="file"> 中选择的文件?

转载 作者:可可西里 更新时间:2023-11-01 17:35:55 31 4
gpt4 key购买 nike

我正在开发一个 WordPress 主题,我有一个 PHP 函数可以处理异步请求,该请求为服务器提供 JSON 和图像。我的表单(为了便于阅读,去掉了一堆内部 HTML)看起来像

       <form method="POST" action="member-update"  enctype="multipart/form-data" id="member-form">
9">
<input type="text" name="fullname" value="">
<input type="text" name="title" value="">
<textarea rows="4" name="bio" form="member-form"></textarea>
<input type="text" name="sord" value="">
<input type="file" name="pic">
<input type="hidden" name="memberAction" value="" />
</form>

我发出 AJAX 请求的 JavaScript 是

        jQuery('.member-update-button').click( function() {
var parentForm = jQuery(this).closest('form');
var postData = parentForm.serializeArray();
jQuery.post( ajaxurl,
{'action': 'member_update', 'formStuff' : postData},
function(response) { alert('Got this from the server: ' + response); }
);
});

我的 PHP 函数通过 WordPress Hook 处理请求,开始时如下所示

function member_update ( )
{
// there must be a more elegant way of getting those values out ....
$name = $_POST['formStuff'][0]['value'];
$title = $_POST['formStuff'][1]['value'];
$bio = $_POST['formStuff'][2]['value'];
$sord = $_POST['formStuff'][3]['value'];


$targetFileName = basename($_FILES['pic']['name']);
$targetFileNameAndPath = 'assets/' . $targetFileName;

我正在从 $_POST['formStuff'] 数组中获取值,但对于 $_FILES['pic']['name']。知道我做错了什么吗?

最佳答案

您需要使用 FormData 的实例。在您的代码中进行以下更改。

在你的html中添加id属性

<input type="file" name="pic" id="pic">

js代码的变化

jQuery('.member-update-button').click( function() {
formdata = new FormData();
formdata.append( 'action', 'member_update' );

jQuery.each(jQuery('#pic')[0].files, function(i, file) {
formdata.append('file_to_upload', file);
});

jQuery.post( ajaxurl, formdata,function(response) {
alert('Got this from the server: ' + response);
});
});

最后修改php函数

function member_update()
{
$file = $_FILES['file_to_upload']['tmp_name'];
}

关于php - 为什么我无法获取在我的 &lt;input type ="file"> 中选择的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31480420/

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