我在视图中有以下内容
<input class="file" name="mpfile[]" type="file" size="32" />
在我的控制器中,我有以下代码。
if(isset($_FILES['mpfile'])) {
echo 'testing';
}
相当简单是吗? ....除非每次我运行它,无论我是否选择了一个文件,它都会运行......如果我有一个文件准备好输入它应该只运行回声吗?
答案 0 :(得分:8)
确保您的FORM元素具有以下属性:
method="POST"
和
enctype="multipart/form-data"
答案 1 :(得分:2)
检查您的PHP.ini:
file_uploads = "1"
post_max_size = 50000
upload_max_file_size = 2M
执行phpinfo();
免责声明 php.ini值可能略有偏差,但你会发现它们我确定。名称是正确的,不确定值是否。
答案 2 :(得分:0)
if(isset($_FILES['mpfile']['name']) && $_FILES['mpfile']['name'])
{
echo 'testing';
}
答案 3 :(得分:0)
假设<input>
嵌入在您的脚本上执行<form>
的{{1}},您是否尝试过转储POST
? E.g:
$_FILES
你可以发布结果吗?还有,是否为PHP启用了上传?
答案 4 :(得分:0)
您是否尝试过使用Codeigniter的上传课程? Codeigniter可以与其他全局变量一起清空$_FILES
。
也许尝试将$_FILES
转储到codeigniters index.php的顶部以确保
答案 5 :(得分:0)
这是黑暗中的又一次刺伤。检查错误代码:
if($_FILES['mpfile']['error'] != UPLOAD_ERR_NO_FILE) {
echo 'testing';
}
答案 6 :(得分:0)
您还需要检查空文件:
if (isset($_FILES['userfile']) && $_FILES['userfile']['error'] != 4)
见这篇文章:
http://codeigniter.com/forums/viewthread/136610/#673652
“上传字段会被放入$ _FILES,即使它是空的,错误和大小分别设置为4和0”
编辑添加:
我从未上传多个,但我认为在您的情况下,您会在测试中的每个['mpfile']
之前添加['userfile']
答案 7 :(得分:0)
if (!empty($_FILES['mpfile']['name'])) {
var_dump($_FILES['mpfile']['name']);
}
答案 8 :(得分:0)
您正在定义一个数组:
<input class="file" name="mpfile[]" type="file" size="32" />
在PHP中,变量$_FILES['mpfile']
也是一个(空)数组。
如果您现在使用isset
进行测试,那么它会被设置,因为它是一个数组(并且永远不会为空)。
使用empty()
进行测试。