我正在使用UPLOAD
方法尝试Post jQuery
多个文件,但在尝试查看数组结果时出现undefined index
错误。试图搜索答案但仍然无法做到。这样做的正确方法是什么。以下是我的代码示例
HTML
<input type="file" name="others[]" multiple="multiple">
的jQuery
$(document).ready(function(){
$("#submit").click(function(){
var array = [$("input[name='others']").val()],
others = {
"upload[]": array,
},
id = $("input[name='id']").val();
$.post('updated-file-others.php',
{
others : others,
id : id
}, function(data){
$("#result_post").html(data);
});
});
});
PHP
if(isset($_POST['id'])){
$id = $_POST['id'];
$others = array($_FILES['upload']['name']);
}
echo "<pre>"; print_r($others); echo "</pre>";
答案 0 :(得分:0)
一些事情
$("input[name='others']")
与您的HTML中的others[]
不匹配。为什么不使用id
并匹配它?
enctype="multipart/form-data"
。$("input[name='id']").val();
输出是什么?你的代码中没有提供任何线索。请参阅php
文件上传文档 - Uploading multiple files
请参阅此stackoverflow问题 - Multiple file upload in php
答案 1 :(得分:0)
我建议将所需的数组格式化为JSON字符串,然后使用php_decode
将其转换为数组。
$json = '["apple","orange","banana","strawberry"]';
$ar = json_decode($json);
echo $ar[0]; // apple
有关JSON with PHP的更多信息,请访问: http://www.dyn-web.com/tutorials/php-js/json/decode.php
答案 2 :(得分:0)
使用$ .post通过ajax上传文件不起作用,为此,您必须按如下方式配置ajax调用:
$.ajax({
type: 'POST',
url: your_url,
data: new FormData($('#form-id').get(0)),
processData: false, //set it to false to send a DOMDocument, or other non-processed data
contentType: false //pass false to tell jQuery to not set any content type header
}).done(function (data) {
alert('success');
})
这会将整个表单发送到服务器,您可以根据需要处理文件和其他字段。
中阅读有关processData和contentType配置的更多信息请告诉我们这项工作是否适用于您,
问候