Wordpress Contact Form 7 检查文件服务器端
Wordpress Contact Form 7 check file server side
这是我的问题:
在 Contact Form 7 制作的表格中,我允许下载 pdf、jpg 或 jpeg 文件类型。
我担心的是扩展控制没有完全执行。
事实上,如果我拿一个 "test.exe" 文件并将其重命名为 "text.jpg",我可以提交我的表格并且没有错误...
是否有测试这个的解决方案? (例如通过 mime 测试)
如果可以,我应该在哪里实现代码?
提前感谢您的回答,对不起我的英语(我是法国人...)
我在我们的论坛中为您找到了一些有用的答案:
PHP Uploading files - image only checking
试试这个答案:
<?php
function isImage($img){
return (bool)getimagesize($img);
}
?>
杰里米·哈里斯发布。
这里是getimagesize()的使用说明
http://php.net/manual/pl/function.getimagesize.php
Wordpress 使用过滤器 upload_mimes
来控制站点范围内允许的 MIME 类型。您可以通过将以下内容添加到 wp-includes/functions.php:
来自定义此列表
function safe_mime_types($mime_types){
unset($mime_types['exe']); //remove .exe support
return $mime_types;
}
add_filter('upload_mimes', 'safe_mime_types', 1, 1);
您还可以添加可接受的 MIME 类型:
function safe_mime_types($mime_types){
$mime_types['svg'] = 'image/svg+xml'; //add .svg support
unset($mime_types['exe']);
return $mime_types;
}
add_filter('upload_mimes', 'safe_mime_types', 1, 1);
有同样问题的朋友,我的解决方法是:
在 wp-includes/functions.php
中:
add_filter('wpcf7_validate_file*', 'cf7_custom_file_validation', 10, 2);
add_filter('wpcf7_validate_file', 'cf7_custom_file_validation', 10, 2);
function cf7_custom_file_validation ($result, $tag) {
if ($tag->name === 'file-586') {
$contentType = mime_content_type($_FILES[$tag->name]['tmp_name']);
if ($contentType !== 'image/png' && $contentType !== 'image/jpeg' && $contentType !== 'application/pdf') {
$result->invalidate($tag, 'Ce type de fichier n\'est pas supporté');
}
}
return $result;
}
这是我的问题:
在 Contact Form 7 制作的表格中,我允许下载 pdf、jpg 或 jpeg 文件类型。 我担心的是扩展控制没有完全执行。
事实上,如果我拿一个 "test.exe" 文件并将其重命名为 "text.jpg",我可以提交我的表格并且没有错误...
是否有测试这个的解决方案? (例如通过 mime 测试)
如果可以,我应该在哪里实现代码?
提前感谢您的回答,对不起我的英语(我是法国人...)
我在我们的论坛中为您找到了一些有用的答案: PHP Uploading files - image only checking
试试这个答案:
<?php
function isImage($img){
return (bool)getimagesize($img);
}
?>
杰里米·哈里斯发布。
这里是getimagesize()的使用说明 http://php.net/manual/pl/function.getimagesize.php
Wordpress 使用过滤器 upload_mimes
来控制站点范围内允许的 MIME 类型。您可以通过将以下内容添加到 wp-includes/functions.php:
function safe_mime_types($mime_types){
unset($mime_types['exe']); //remove .exe support
return $mime_types;
}
add_filter('upload_mimes', 'safe_mime_types', 1, 1);
您还可以添加可接受的 MIME 类型:
function safe_mime_types($mime_types){
$mime_types['svg'] = 'image/svg+xml'; //add .svg support
unset($mime_types['exe']);
return $mime_types;
}
add_filter('upload_mimes', 'safe_mime_types', 1, 1);
有同样问题的朋友,我的解决方法是:
在 wp-includes/functions.php
中:
add_filter('wpcf7_validate_file*', 'cf7_custom_file_validation', 10, 2);
add_filter('wpcf7_validate_file', 'cf7_custom_file_validation', 10, 2);
function cf7_custom_file_validation ($result, $tag) {
if ($tag->name === 'file-586') {
$contentType = mime_content_type($_FILES[$tag->name]['tmp_name']);
if ($contentType !== 'image/png' && $contentType !== 'image/jpeg' && $contentType !== 'application/pdf') {
$result->invalidate($tag, 'Ce type de fichier n\'est pas supporté');
}
}
return $result;
}