计算并限制上载的文件数(HTML 文件输入)
2022-08-30 18:35:39
我有那个基本的,众所周知的多文件上传表单。类似的东西...
<input type="file" multiple="multiple" name="something[]" />
有没有办法(最好是硬编码选项)来限制用户可以选择的文件数?通过限制,我的意思是严格阻止,而不仅仅是如果超过数字的警告。
提前致谢。:)
我有那个基本的,众所周知的多文件上传表单。类似的东西...
<input type="file" multiple="multiple" name="something[]" />
有没有办法(最好是硬编码选项)来限制用户可以选择的文件数?通过限制,我的意思是严格阻止,而不仅仅是如果超过数字的警告。
提前致谢。:)
您可以实现一个javascript解决方案来检查已选择的文件数,然后您可以使用这些文件禁止上传到服务器。但是,实际上只有客户端解决方案才能解决此问题,因为实际上没有什么可以阻止用户将这些文件发布到您的php脚本中。您可以指定最大上载大小限制,但该限制并不特定于要上载的文件数。
你最好的办法是实现一些javascript检查,为你的http服务器(或PHP)指定一个合理的最大上传大小,然后忽略任何上传的文件,如果它超过你的最大计数。
在此处阅读有关 HTML5 文件 API 的信息,以限制所选文件的计数:http://dev.w3.org/2006/webapi/FileAPI/
以下是php.ini文档,其中解释了如何对上传进行大小限制:http://php.net/manual/en/ini.core.php
正如评论中建议的那样,请查看:http://php.net/manual/en/ini.core.php#ini.max-file-uploads
我们都知道在数组中first element is stored in 0 th index, 2nd in 1st index......nth in (n-1)th index
现在你不能采取,这将总是返回5,因为数组中有5个键count($_FILES['something'])
现在的问题是包含什么?=>上传的第一个文件的名称$_FILES['something']['name'][0]
所以检查喜欢
if(empty($_FILES['something']['name'][0]))
{
//checking whether a single file uploaded or not
//if enters here means no file uploaded
//so if you want you may put a check/validation here to make file
//upload a must in your website
}
if(isset($_FILES['something']['name'][5]))
{
//checking whether 6 files uploaded or not
//so here you can put a check/validation to restrict user from
//uploading more than 5 files
}