我知道有很多与此相关的问题和答案,但我想知道在服务器端和客户端对文件扩展进行限制的最佳方法。
PHP
$allowedTypes = array('gif', 'png', 'jpeg', 'jpg', 'pdf', 'xls', 'xlsx', 'doc', 'docx', 'ppt', 'pptx', 'mp3', 'mp4', 'rar', 'zip', 'txt');
$File_Name = strtolower($_FILES['uploadfile']['name']);
$File_Ext = pathinfo($File_Name, PATHINFO_EXTENSION);
if(!in_array($File_Ext, $allowedTypes)) {
die('Unsupported File format!');
}
JS
var ftype = $('#uploadfile')[0].files[0].type; // get file type
//allowed file types
switch(ftype)
{
case 'image/png':
case 'image/gif':
case 'image/jpeg':
case 'image/pjpeg':
case 'text/plain':
case 'text/html':
case 'application/x-zip-compressed':
case 'application/x-rar-compressed':
case 'application/octet-stream':
case 'application/pdf':
case 'application/msword':
case 'application/vnd.ms-excel':
case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
case 'video/mp4':
break;
default:
notify("Unsupported file type!");
return false
}
答案 0 :(得分:0)
您可以在<input type="file">
元素
accept
属性
接受强>
如果
type
属性的值是file,则此属性指示服务器接受的文件类型; 否则会被忽略。该值必须是以逗号分隔的列表 唯一内容类型说明符:
- 以STOP字符(U + 002E)开头的文件扩展名。 (例如:“.jpg,.png,.doc”)
<input type="file" accept=".gif,.png,.jpeg,.jpg,.pdf,.xls,.xlsx,.doc,.docx,.ppt,.pptx,.mp3,.mp4,.rar,.zip,.txt" />