用的是symfony框架,用jquery上传图片,但是后台接受不到数据。代码和错误提示如下:
<p id="progress">
<p class="bar" style="width: 100%"></p>
</p>
<p>
<input id="fileupload" type="file" name="files[]" data-url="imghandle" multiple>
</p>
$(document).ready(function(){
$("#fileupload").fileupload({
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css(
'width',
progress + '%'
);
},
done: function (e, data) {
$.each(data.result, function (index, file) {
$('<p/>').text(file.name + ' uploaded').appendTo($("body"));
});
}
});
});
后台代码如下:
$imgPurpose = trim(stripslashes($_POST["files[]"]));
错误提示如下:
Notice: Undefined index: files[]
请问这是怎么回事呢?多谢了。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
简单回答你的问题如下:
第一、在表单控件的
name属性值是数组的情况下(末尾加[]),在用PHP获取该控件提交的内容时,应该省略[],因此你的代码应该像下边这样:第二、你使用
$_POST全局变量访问files,得到的结果是一个PHP数组,因此,不能直接使用字符串函数进行处理(这里暂不讨论此处的字符串函数)第三、你使用的是
Symfony框架,不应该直接访问$_POST以及其他全局变量!Symfony的HttpFoundation组件已经把这些全局变量抽象为OOP接口了,应该使用Symfony提供的接口。像下边这样:(假设你的控制器方法如下)最后,
Symfony的HttpFoundation组件功能很强大,以下是其官方文档的一些相关链接,如果阅读一遍,会对你使用Symfony框架有很大帮助。Symfony与Http基础
HttpFoundation组件文档
备注:和

Symfony相关的问题,请加上Symfony的标签,这样对Symfony问题感兴趣的答案作者会更容易看到。(输入内容会自动弹出提示,如下图)