Php 限制所选文件的数量
我有一个脚本,允许用户在按住CTRL键的同时选择多个图像,然后将它们上载到服务器。我需要将所选图像的数量限制为10个,这样当用户提交表单时,如果有10个以上的图像,他将得到一个错误 我该怎么做 附言:我有一个foreach循环,看起来像这样:Php 限制所选文件的数量,php,html,file,select,Php,Html,File,Select,我有一个脚本,允许用户在按住CTRL键的同时选择多个图像,然后将它们上载到服务器。我需要将所选图像的数量限制为10个,这样当用户提交表单时,如果有10个以上的图像,他将得到一个错误 我该怎么做 附言:我有一个foreach循环,看起来像这样: foreach ($_FILES['file']['tmp_name'] as $key => $tmp_name) 欢迎使用PHP解决方案。因为我不信任javascript和jquery 编辑: 这是我的脚本:您的循环正在尝试遍历字符串。也许你的
foreach ($_FILES['file']['tmp_name'] as $key => $tmp_name)
欢迎使用PHP解决方案。因为我不信任javascript和jquery
编辑:
这是我的脚本:您的循环正在尝试遍历字符串。也许你的意思是:
$number_of_files = 0;
foreach ($_FILES as $file)
{
if ($file['error'] == 0)
{
// file uploaded successfully
$number_of_files++;
}
}
if ($number_of_files > 10)
{
die('You uploaded too many files!');
} else {
foreach ($_FILES as $file)
{
if ($file['error'] == 0)
{
copy_the_file_to_destination(); // left as an excercise for the reader ;-)
}
}
}
您可以只做
计数($\u文件)代码>,但它会计算所有文件输入,即使是空的。我找到了我现在正在寻找的PHP答案!:D.我所做的是:
我检查了Carlos的答案,并在循环外放置了一个值为0的变量。然后我像Carlos那样创建了错误检查:if($file['error']==0)
然后我又做了Carlos在if语句中做的事情$number_of_files++代码>
现在我跳出了循环,做了如下工作:
if ($uploaded > 10)
{
unlink($image);
unlink($thumb);
if ($resize) { unlink($res); }
}
这会自动删除第11个图像,并在我的服务器中仅保留10个图像
谢谢你提供的所有信息,卡洛斯,我想我把它组合得很好:p你知道计数(!empty($\u FILES))是否有效吗?如果它会这样做,那么它将只计算非emptyno的文件输入,它将不起作用,因为empty
查找空数据并返回bool$\u文件
不会为空,因此它会返回true(empty不足以检查每个$\u文件['*']['error']
并检查它是否为0。此外,您还可以对非数组表达式进行计数。Beauty,谢谢,在这个用法中不确定,所以我想我会询问而不是建议:-)由于我在文件输入中使用了multiple属性,您在上面演示的foreach循环无法工作。我花了很长时间来编写我在问题中展示的foreach循环,在此之前我想了很多,并尝试了很多其他方法(包括你的方法),除了我展示的方法之外,它们都不起作用。我看到的PHP唯一解决方案的问题是,如果用户选择了11个项目,并且没有得到即时通知,可能会惹恼用户,使用JS(jQuery或not),您可以在选择第11项时发出警报,这意味着用户可以在提交无效项集之前根据需要更改其选择,然后您可以放置一个PHP回退脚本来验证提交是否正确。这两个世界都是最好的。你说得有道理,我必须同意。PHP和JavaScript(或jQuery)都可以让事情看起来更好。我是否需要提出另一个问题来询问JavaScript解决方案,或者我可以使用这个问题来获得新的答案。。。?